Although this is a welcome improvement there's still a need for supporting "two stage commits" in VC. Git has this, with the staging area (nee index), but other SCM tools also have a concept of a private workspace or branch that's stored on the server (IOW, not just local files) that then need to be promoted or published to a more public branch/stream/whatever. I work with a tool (AccuRev) which has this explicitly (I'm working on updating our local VC support for AccuRev to Emacs 23 right now), but even tools which don't have it explicitly often implement it as a workflow. I wrote a complete changeset based environment for ClearCase back when I worked at a company that used that (just say no to UCM---ugh!!) and it used a ClearCase branch to track each changeset, so you checked in your changes there but then you need an extra command when you're done with the changest, to push it up to the next level.
I don't think there's any support in Git's VC mode for push for example.