I must admit I frequently call people stupid, to their face, but only good friends of mine. If they do something stupid, or say something stupid, I call them on it.
While calling someone a jerk, Clark, is a more general comment on someone's character, stupid is local. 2+2=4 stupid, not 5. So the person made a mistake. It is a local mistake and doesn't say much about them generally. I usually do at least 10 stupid things a day. I get annoyed at myself a bit, call myself stupid, and move on (hopefully they are not such serious mistakes).
Doug, I think the problem is that people don't accept it as local, they hear it as a judgment on their whole being. You calling me stupid? Especially if people respect you they can be offended by your judgment of them as stupid. They don't understand it is not a judgment of them but a local one on a very simple matter.
For example, students say the stupidest things, but if anybody would call them on it they would feel attacked. More so because they know what they meant to say and what they meant to say was very smart. It wasn't what came out, but if you say something about what came out, well, they feel you are judging what they meant to say, and by proxy, them. (Similarly, I once told a woman I thought she didn't look good in a certain picture of hers. That was a mistake. It didn't help if I thought she looked great in 20 other ones, nope.)
I think the moment someone knows you better and is a friend, they feel you can talk more locally, more to specific points, while someone you don't know well, judging any bit of them is a more general judgment, they feel.
Having said all that, once, after a while of not talking to close friends, when a certain friend of mine replied to something I said - Baloney! I was a bit shocked. It's stupid, but one is simply not used to it in the world and then when it comes it is shocking.
Clark, great last line.