So, would that mean that returning vars() (without copying it first), would be handing off variables that refer to memory locations inside that scope? The scope that no longer exists because the function has ended? Or do the variables still exist in memory after the function has ended? I'll play with this a bit.

You also didn't really answer my question. I know what's happening, what I don't know is if it has any impact on Python. If vars is actually an essential part of Python, or some sort of representation therein.
Dawei, I've sent you a PM.