With like/dislike and flag, you could restrict them from replying or voting on replies which they flagged. Meaning they cannot argue with someone they just flagged, if they want to argue all they can do is "dislike" (which is how dislike SHOULD be used).
There will always be issues with anything like voting, but it's an interesting approach.
HN also stops you from downvoting someone who replies to you, I think, which is another good idea.
One of the common complaints around here are about "anonymous downvoters", since the other user is often left wondering why they were downvoted. Should we enforce this as a rule?
It's not that most of the people are rational and self-critical - many people think that their personal opinions are right and others are nonsense :)
You can't design system on the assumption that people are rational.