in reply to Re^5: Unexpected parsing
in thread Unexpected parsing

Because, IMO, functions take values (even if they are references or aliases), do something when called at runtime, and return zero or more values.

At runtime, It takes the name of a variable, allocates it* and returns the named variable as an lvalue.

* — The implementation differs, but this is the intent of my and it should be the perceived effect.

return isn't a function either

It is a function. It's not a function in the functional programming sense — it has side-effects — but that's not relevant here.

More specifically, perlfunc documents named operators, and return is one.

If you're going to add colons, why not semi-colons? Braces?

Semicolons can't appear in expressions. As for braces, both constructs such as do {} and the anon hash contructor *are* mentioned in perlop.