The exact reasons why are probably lost in the mists of time. I'm willing to bet that it happened something like this:
- At some point, somebody thought it would be a good idea to make semicolons optional at the end of statements.
- Later on, somebody else noticed an ambiguity in the syntax when semicolons were omitted when used with
return
statements in the way you describe. - The formal language specification was then amended with the confusing new rule about omitted semicolons on return statements, to codify current practice rather than changing the rules to make sense.