I've learnt a little hg recently, and I really like how it distinguishes local branches that haven't been released yet. With git, a local branch is not shown as diverging from the upstream trunk!
Mercurial has strictly more information here with its notion of phases.
@cstanhope Git doesn't strictly require branches, but it's rare to create commits on top of a detached head. I also believe there's no way to push commits that aren't associated with a branch or tag.
Smalltalk has separate True and False classes. Strictly following 'everything is OO', it makes sense: eg different 'not' implementations!