Can't say I'm keen on the SUB handler(),int, or the Return(0) idea.
The original user guide said .. You don't need a 'Return' statement if the subroutine has nothing to return.
And if it returns nothing, why specify a return type?
That statement is still true.
But a message handler has always returned a value; it's just that the compiler had special case code so you didn't have to enter it.
Sapero had to add some code to insure that the user didn't try to pass parameters to OnMenu, OnControl,OnMessage functions and the special case code was getting in his way. So he standardized the way subroutines work, including handlers.
Except for the BREAK statement in your original code the other stuff simply generates warnings, not errors.
There are even compiler options now that you can opt for that keep those particular warnings from appearing if you so desire.
And I'm waiting for your next idea...

LarryMc