Really? I came from RCS, CVS, and SVN. Git's toolkit took about ten minutes to get used to, but then I suddenly realized that it made
far more sense than SVN. git add, git status, git commit -a. All repos are equal. Everything is small, and everything is fast. Really fast.
There's rarely a need for git rm or git mv, since they're implicit. Waaay better than SVN, where I could never remember if I had to move it by hand first or afterwards, and half the time committed multiple copies of a file I meant to rename.
The empty directory thing has never been a problem for me; my software creates directories as needed. You can always drop a .file in the dir if you really need it.
Branches work great. They're just pointers! Plus you can revert merges, and it just works.
I never rebuild the history, but I guess if I was working in a large team with complex patchsets I might. Our team of six seems to get along just great with a central free-for-all repo.
Gitk is ugly. No two ways about that. :D