Thanks, Laurent.
There is very little difference between functions, subs and methods in terms of being able to return values, or not. This is by design.
As with variables, they can also be overridden or overloaded, including most of the core functions.