I don't agree with the OP's definition of "asshole". Some people set a higher standard, and this oftentimes rubs people the wrong way. It's a mistake to label these people assholes, because they usually serve a valid purpose.
The people that you really have to watch out for are the Machiavellian assholes who care nothing about the job at hand and will do anything to cut others down for their own aggrandizement.