I simply don't agree with this. There's nothing wtf about git add, git commit, git push. Those are the commands that normal developers use. Maybe git reflog has issues but 90% of people are never going to come across them.
1) So you can revert the merge very easily.
2) Merging without a commit.
3) A branch on a remote server that you have a copy of locally and you want to keep track of the status of remote against the local copy (who's behind and who is ahead?).
This is my basic understanding in terms of how I use git. I like Mercurial too and don't have a horse in this race.