We might be using different definitions. It's OK to break a few eggs to make an omelette, it's not OK to break a few eggs just for the fun of breaking eggs. I'm pretty sure it's the second kind of people that is usually termed an asshole.
Yes, I think definitions (and understandings) need to be made more explicit.
People who break eggs for the fun of breaking eggs are usually called something along the lines of sadists and psychopaths.
In the context I would assume an "asshole" is someone who just wants X done and does not care at all about your feelings, opinions, convenience, etc. Example one: a recruit training sergeant. Example two: Steve Jobs.
An alternative definition would be "someone who wants to play power and status games" and that's a different case.
An yet another alternative definition is "someone who's more ambitious/aggressive than me".
http://blip.tv/tech-love-live/osb09-donnie-berkholz-assholes-are-killing-your-project-2464449
This is specifically about why it's important to get assholes out of open source projects, but it applies in general. It includes an analysis of the social cost of keeping people around who frequently make other people unhappy, and in particular a way to balance the social costs (distraction, people doing much less work or leaving, useful volunteers not joining, assholes recruiting other assholes, etc.) of assholes against the useful work some of them do.