I think one big redeeming factor for GitHub is the extensive and robust API. It's very easy to hack together a custom version controlled app or system using GitHub as the backend.
It's true that GitHub has a great API, but when you run your own server and have access to the running software and file system you get the best API for working on git repos there is: git. Or perhaps libgit2 and your favourite language's bindings.
Subjectively, I haven't found GitHub's API to be great to work with, but this is because they use OAuth and OAuth is just needlessly complicated and inconvenient.