Yeah, it feels like the whole "why" is that RPN reflects how the machine works, so it's easier to build it that way.
Really? What do you call an operator applied to an empty stack? A sequence of commands that leaves the stack non-empty? I don't see why that's any less ambiguous than mismatched parentheses.
That’s actually a feature. It’s even fundamental in concatenative programming languages such as FORTH and Factor.
[Pi] for example is an operator which can push the value of Pi onto an empty stack.