Which claim are you questioning here? That they are ad-hominem *or* that ad-hominems will make the person defensive *or*that making someone defensive makes them less likely to listen to reason?
As far as what I’m assuming, well… have you ever tried telling someone that they are being stupid or dishonest during an argument, or had someone do this to you? It pretty much always goes down as I described, at least in my experience.
There are certainly situations when it’s appropriate, and I do it with close friends and appreciate it when they call out my stupidity and dishonesty, but that’s only because there is already an established common ground of mutual trust, understanding and respect, and there’s a lot of nuance in these situations that can’t be compressed into a simple causal model...
I see what you are saying. I think an assumption I’m making is that it is correct to say what you believe in an argument. I’m not always successful at this, but if my heuristics where telling me that the person I’m talking to is stupid or dishonest, it would definitely come through the subtext even if I didn’t say it out loud. People are generally pretty perceptive and I’m not a good liar, and I wouldn’t be surprised if they felt defensive without knowing why.
I’m also making the assumption that what the OP labels as wrongness is often only a perception of wrongness, or disagreement. This assumption obviously doesn’t always apply. However, whether I perceive someone as ‘wrong’ or ‘taking a different stance’ has something to do with whether I’ve labeled them as stupid or dishonest. There’s a feedback loop that I’d like to avoid, especially if I’m talking to someone reasonable.
If I believed that the person I was talking to was genuinely stupid or dishonest I would just stop talking to them. Usually there are other signals for this though, although it’s true that one of the strongest signals is being extremely stubborn about easily verifiable facts.