I agree with you on all these points.
If a gerund were a separate noun type, it could also have a fill element, a verb to be used by modifiers taking gerunds when a gerund is empty, or overtaken ({.).
Initially, I thought that it could make sense to have, as a gerund-fill element, a verb that returns an appropriately (taking into account $x, $y and rank(s) it is applied to) dimensioned array of the fill element of y?
Although if so, there's no way to know what shape/type of result a user expects from a verb if present, so probably it's not a solution either.
Even when an empty gerund is applied on arguments having no items (leading 0 in shape) (as was my case), it wouldn't be straightforward to assume a certain shape (including leading 0's depending on the rank the gerund is applied on) for the result.
So I guess the current implementation is as good as it gets.
Thanks for pointing that out.
Best regards,
Jan-Pieter