Others have explained the rationale for the backport, so I won't bother repeating those arguments.
I understand your point about code supporting 2.6, but as you say, that applies to any new features being added in 2.7. I'm therefore confused as to what the rationale for a 2.7 release is. It's a bump in minor release number, so it's purpose is to add new features, correct?
That, but not only - it's purpose is also to allow for certain incompatible changes, and to arrive at a version that will be maintained until 2015 (wrt. security fixes).
Could someone please explain what new features are currently envisioned for 2.7?
Read through Misc/NEWS for details of what has been added already.
Why would those make the cut but a not backport of nonlocal?
Just to name a few changes: - Issue #1655: Make imaplib IPv6-capable. Patch by Derek Morr. - Issue #4915: Port sysmodule to Windows CE. - Issue #6101: A new opcode, SETUP_WITH, has been added to speed up the with statement and correctly lookup the __enter__ and __exit__ special methods. - Issue #1616979: Added the cp720 (Arabic DOS) encoding.
In all of these cases, in order to use the new feature, no change to Python code will be necessary: the feature just becomes available transparently.
This is the kind of new features I like to see in 2.7. The other kind (i.e. features that do require application changes in order to use them) I find questionable.