Unlimited repo's for teams of less than 5 compared to GitHubs pricing model for private repositories is a strong challenge.
Throw in that BitBucket is Atlassian backed and they can afford to subsidise BitBucket to sell their other tools (though I would observe that BitBucket does not do heavy sales tactics at all).
I actually prefer bitbucket to github day to day (I have about a dozen repo's with them) and they have excellent support for mercurial as well.
Obviously GitHub is the major git hosting solution for open source projects and yes I have a github account and yes I visit the site as much as I do bitbucket but mostly to pull repo's, check issues and read documentation.
At work we use BitBucket because of the unlimited private repos, and we've got a fairly good setup built on it. Every office I know either keeps their repo hosted, or uses BitBucket. I've only known one office that uses GitHub, and due to the nature of their work they keep their stuff public.
It's not even up for debate anywhere I work. BitBucket, or a private hosted repo is the only choice to make.
Another thing is that if you're using open source products then they're likely on github. I agree that both platforms have a general feature parity but if you're going to interact with these projects often enough then it's better to stay on a single platform and avoid the context switch. Personally this only is already worth the $50-100 that our company is paying.
You can see that I am biased but something I would also like to point out: on more than one occasion github has prompted me to open-source things. When you reach your repo limit you're faced with a choice that you don't have with unlimited repos. There's a case where you don't want to think about it and just want to keep working as usual but for me space constraint is what keeps my home tidy.
The context switch is fairly minimal, underneath it is just git with a pretty web-ui.
The scenario for up-sell is absolutely fine, if you have less than 5 developers it's free, if you have more than that you start to pay based on number of developers, this is both more rational (you are paying for users not number/size of repo's) and easier to quantify.
In my opinion GitHub's cleverest move was making it free for open source repo's thereby building a good community of influential developers around their product from day one, this does give them a significant lead but it's not insurmountable (I'm old enough to remember when the first thing you did when you wanted the source code for an open project was head straight over to sourceforge) particularly as moving most (small) projects from github to bitbucket (or another competitor) is one git push.
Perhaps, but it's also likely that consumers are not Atlassian's primary target audience. They make most of their money selling JIRA, Confluence, Bamboo etc to companies and large enterprises.
Getting individual developer's hooked on free access to Bitbucket for personal projects is a great way to get those developers to agitate for using Bitbucket within their company.
Maybe I am atypical, but I really like Github :)
Edit: Also open source projects will not start to pay github, but private projects might grow and will start paying for BitBucket