I won't necessarily bring my opinions into this, but the issue you bring up is essentially an impossible thing to solve without making the platform extraordinarily restrictive or adding other options for content management. People view voting in fundamentally different ways, and switch between them constantly. Here are the two voting types (simplified):
- Voting to Agree/Disagree
- Voting on quality
These two distinctly different functionalities are being handled within the same mechanic. Unless it is split into two separate mechanics, this will never cease to be a problem.
Here's a system I personally would enjoy:
In addition to current vote functionality, a gradient vote is added. The upvote/downvote functionality is used to denote agreement/disagreement, the gradient functionality is used to denote perceived quality. The vote total is used to calculate the "hotness" of a thread; the gradient is averaged and displayed on thread listings rather than the current vote total.
Example: Let's say it's a 1-10 scale on the gradient; I might upvote a thread because I agree with the general concept but give it a 2 on the gradient because it's really poorly written or aggressive. Let's say someone else also upvotes it but gives it a 6. This would display as a 4 due to the gradient and be sorted as +2 due to the upvotes.
This system is assuming that people don't automatically upvote themselves (and can't vote on their content at all) because that makes no sense.
I know this doesn't seem related, but here's the thing. People don't always have time to comment or feel like writing out a post to express their feelings. We have to support that in a compelling way, and I don't think single votes cut it. A dual-vote system like this allows a player to both show whether they agree or disagree and how they feel the post was written in two clicks. It's obviously not as good as a comment, but it's significantly better than just an up/downvote.