A slightly different question is why this article is marked as [flagged] but not [dead]. Often (usually?) when an article is flagged by multiple users, it's also killed and made invisible (except to users with "showdead" turned on). Users with sufficient karma can then "vouch" for dead stories to revive them.
But when a story is [flagged] but not [dead], no user remedy is possible. The story is penalized to not appear on the front page, but the comment page is still usable. I think this state happens after a manual review: users flag, Dan assesses, and then decides that penalized but alive is the best outcome.
But maybe there is some other way it can end up like this? I'll write to Dan and ask.
I've resisted that on the grounds of not wanting to make things too bureaucratic, but I can feel myself tipping slightly on the question for a somewhat odd reason: there are too many mistaken/accidental flags, especially on mobile, so we probably need a confirmation screen to allow people to say "oops, cancel". If one adds that, it's probably fine to ask for a reason too.
Re the other questions: flags, above a certain threshold, act as downweights on the story. Above another (higher) threshold, the [flagged] marker appears. Above another (still higher) threshold, the story will also be killed, in which case it will show up as [flagged][dead] and closed to new comments. However, if a thread has already gotten a lot of comments, the software won't kill it. In addition, moderators sometimes put [flagged] on a post—but this is rare for stories; we do it more often on comments that are breaking the site guidelines.
So that makes 3 different ways for a story to end up [flagged] but not [dead]. The one you postulated (a story is [flagged][dead] and then we manually unkill it, so it becomes [flagged] but not [dead]) is technically possible and I can't say it never happens, but it's definitely not standard practice and would be a weird edge case if it did happen.
Have I answered your questions?
p.s. various past explanations can be found at https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...
Edit: I forgot about another case. If a post is [flagged][dead] and then enough users vouch for it, it will stop being [dead] but will still be [flagged].
Accidental flags seem like another good reason to add a "reason" field. I'm not sure what interface makes sense, but I do think it would be useful to know if the flagging was done because the link was broken, or because the title is bad, or something else that could be easily fixed. Personally, I'd be more likely to flag dupes if there was a way to signify why I was flagging them.
Your answer also makes me wonder if all [flagged] stories should have a "vouch" link visible. I view flagging and vouching as opposites. It seems suboptimal and oddly asymmetrical that a story can be permanently penalized by flagging without allowing other users to cancel out those flags. The vouch link seems like a wonderfully democratic solution apart from this.
Alternatively, if the goal of showing [flagged] is to signify that a story is contentious, I wonder if [flagged][dead] stories that are revived by vouching should still keep their [flagged] tag even if the penalty is removed. Consider a story like this one but with fewer comments. If it's [dead], one can vouch for it and restore it fully; but if it's just [flagged], it's penalized forever.