I have seen that this topic is discussed widely on Meta, even there are a number of feature requests on this topic. Here I would like to present my clear and easy-to-implement recommendation.
In my opinion voting and flagging are very similar, both express an opinion, which is valid at that specific moment of time. Votes can express both positive and negative opinions, most flags can express only negative one. I have a recommendation for expressively negative, post-oriented flags.
If an edit has been made on the post, the situation may change. Despite of that, votes and flags behave differently:
- Votes can be revoked, or even altered
- Flags will remain the same, even though a positive change happened in the post.
My recommendation is very simple: If I cast a positive vote on the post, all my negative flags on that post should be deleted (if not yet accepted or rejected).
- It does not require extra UI features (possibly one information message may appear)
- It really expresses the flagger's opinion (if the change is positive, then it is worth to upvote)
- If an edit made to the post, then (and only then) has the flagger the right to change his/her (very negative) opinion
- It is easy to implement (under the hood)
- We can really achieve reduction of the moderator load
- It is simple to understand, the community will understand easily (I hope so)
To make the picture clear, one additional rule must be introduced: I should not be able to flag negatively a post that I voted positively.
This way we would exclude the situation that you wouldn't be able to revoke your flag, because you cannot cannot click upvote, because you have already clicked before.
The additional rule is also very reasonable: you either agree with the given post, or not. It has no sense to do both.
As a response to a comment: when I mention negative flags, I mean those flags that are directed to delete a post. If it's not clear for everybody, the community should decide whether a flag TYPE is negative or not.