Based on the original proposal...
[...] a function would need to define one or more resulting values to return [...]
... and the procedure evaluate a custom function
- Let
result be the resolved local value of the result descriptor [...]
... and common sense (@function would be useless if it returns nothing, presumably equivalent to returning a guaranteed invalid value), I would say that result should be required for @function to be valid, which is currently not explicitly defined in 2.1. The @function Rule or 2.2. The result Descriptor.