I don't know why, but I always end up telling every single person who either 1) Bitches about git, or 2) asks for help, that I always, always, always tell "git push" or "git pull" which remote and branch. It's muscle memory and makes everything more explicit and easy to understand. Although, in this case, it sounds like you expect git to be intuitive. (Which it is not) So this basically amounts to a blog post complai…
It's a problem of user interface design. Git's user-machine interface does not follow the principle of least astonishment. It's not orthogonal. Functionality is grouped in very strange ways (you list, move, rename and delete branches with branch, but create branches using checkout? Seriously???). And don't even get me started on the nightmare that is submodules. The whole thing reminds me of the bad old unix days of…
git checkout -b new-branch
... is a shortcut for: git branch new-branch
git checkout new-branch
You can create the branch or otherwise manipulate it without actually checking it out, so it's useful to have it separate and have a shortcut.(I agree that git's interface is terrible, but I disagree that this is one of those cases. :) )