1. Correct. Embedded subprocesses are a part of the process instance like any other activity. Call Activity is the only exception to that.
2. True. This is one of the shortcomings in v5 we're fixing in v6. In v6, there will be a 'subprocess scope' for variables and it will work as you describe (with the local variables)
But in this particular case, I would think the local variable did get chosen. It seems your example is missing from the post. Can you reupload it?