We do keep records of previous flags.
I don't agree that flags should be updated, however, because mechanically you can't ensure that the flag has remained valid post-dismissal.
For example, suppose a good answer is posted, but someone has a beef with it and flags it as "not an answer". We dismiss as invalid. Later on, though, that user goes berserk and starts revising all of his answers into nonsensical haiku. That answer gets flagged as "user is vandalizing posts in verse!", which we immediately swoop in and resolve. This flag should be dismissed as valid, but the original flag that was on it still has no business to be dismissed as valid.
Auto-updating the flag dismissal is not wise for the above reasons. If it's not automatic update but instead we individually re-visit flags, that's introducing two complications.
- First, it means that your flag weight becomes very unstable. It's no longer that each flag makes one mark, but they could change at any time, if someone else decides to oppose your resolution. If it should not have been closed in the first place, does that mean your flag is now invalid? How are you supposed to even keep track of all of the changes and where they would be coming from? It can get really messy, really fast.
- Second, it adds a higher level of complexity to our job as moderators. We are given past flags as a means of context to the history of the post. If we have to consider the fact that we might have to revisit the resolution of every past flag on a post, that significantly will increase our workload in addressing flags, meaning slower work. It's simply not a very efficient thing to introduce.
Since those are both pretty bad things for both sides of the engagement, and I don't believe the benefits outweigh either, I don't agree in updating the dismissal. Let's not focus our optimization of flagging on the weight.