The thing I like about your insult vs "you're racist" is that you're attacking what someone is doing, rather than what they are. When confronting someone for being wrong, it's a lot more constructive to say, 'Hey, you're wrong about this, and this is why,' than it is to say, 'You're a moron (or a bad person), and this is why.' It's also more accurate. Labeling is helpful for navigating thousands of people in our communities/millions online, but keep those labels to yourself, and be ready to question them. During confrontation, though, it will cause the other side to shut down, and that's where we are. We're more concerned with defining each other as others than working together to find commonalities and building on points of agreement.
I'd just add that significant power imbalance significantly changes things and how we ought to attack disagreement.