to all probability, any variable created in any of the child scope, will be put on the stackframe the moment method is entered.
This way, a similar name in a child scope can not co-exist with a variable name in another child scope.
They could have worked around this of course if they wanted, so I guess it ultimately has to do with design as well.. this way there is less chance for error