I am not a vc user. I find magit far more helpful. That said I took a look at vc.el. Interestingly it has a vc-checkin command but neither vc-push nor vc-commit. From this I surmise that at the time vc.el acquired support for the DVCS model the choice was made to map vc-checkin to the local commit operation and leave it to the DCVS backends to provide a command to push to the central repository. Though too much water may have flowed under the bridge to revisit that choice it seems to me an alternative would have been to preserve vc-checkin as the command that pushed one's work to the central repository, leaving it to DCVS backends to support the new concept of committing locally. /john