Meaning you prefer "foo(bar=bar)" over "foo(**locals())" right? Because that seems to be the suggested solution here and I think that's pretty bad :P
My suggestion isn't about introducing more magic, just a little bit of convenience for two common use cases: passing along variables with the same name to another function and throwing a bunch of variables into a dict (which is basically the same thing since "dict(foo=foo)" == "{'foo': foo}").