Not generic, a bastardise form of Algol60 and BASIC.
I'd like to add...
Even if a subroutine macro does not include a value to return, use Return Result.
I mistakenly tried to use Cancel Just This Macro and @peternlewis set me straight: "Cancel Just This Macro" in a Subroutine
If you donβt like the Cancel Just This Macro action, you could also use the Break From Loop action, which given there is no loop will exit out of the macro.
I think you're putting too much on poor old Cancel's shoulders.
There's a world of difference between you deliberately halting a macro with the "Cancel" action and the Engine doing so because of an error -- the "Cancel" action doesn't write a message to the Engine log, for example. And if you've reached a point where you've decided to "Cancel" then you should have also done any required clean-up -- resetting globals, etc -- before the "Cancel".
If you don't like the implications of the name -- make it a Favourite and rename it! I still think the "Bang!" sign is appropriate as it draws attention to the fact the macro will stop at this point, despite their being further actions in the Editor. And the granularity as to what gets cancelled is really useful.
I'd save "Return" for when I actually wanted to return something -- bearing in mind @CRLF's findings on what instances may also be stopped when it executes.