I've used git in a traditional corporate environment, and done right, it can be a lot more powerful than SVN.
"Done right" means you have someone dedicated to the role of "git master" who merges the team's commits into the master repository.
This is what Linus does, and it works to great effect. The great advantage is that individuals and teams can very easily work on their private branches before merging into mainline.
The second method is to set up a server which runs automatic tests on all commits and guarantees at least that the git history remains clean and contributions do not break the build.
From my experience, people tend to resist git because the concepts are a bit difficult to get in, especially when coming from other SCMs. It doesn't help that git uses many of the same nomenclature as other systems for slightly different operations.
However once the concept starts to settle in, git is actually quite simple and its use becomes second nature.
I don't know mercurial that well. From my experiments and what I've read on the Internet, it's essentially the same as git. Some people have strong opinions (like you seem to have) towards one or the other, but I've found that it's mostly down to small differences.
However, to me it makes no sense to use mercurial when almost all open-source projects already use git. Using mercurial only means you have to deal with two SCMs rather than one.