There is a difference between "Don't delete" and "re-open".
Re-opening means the question is on topic for Stack Overflow and the community would benefit from being able to add more answers.
Don't Delete means that the question is off topic for Stack Overflow, but has garnered enough inbound links, votes, views, and the answers are of sufficient quality that Stack Overflow's repository of knowledge would take a hit and the community would suffer if the content were deleted.
Closing used to be a implicit vote for deletion; but that was in the midst of the site finding its identity. Now that we've done that, we know that there are things that are off topic for Stack Overflow, but weren't at one time, and they generated great answers that we should not delete.
That does not mean that those questions are still welcome, or that existing questions that fall in that category should stay open.
Personally, I'd rather not have these questions flagged for moderator attention either. Most of the time if a question really needs to be re-opened, we've got a meta question where people are discussing it, or there are flags galore already on the question. In short, the community lets us know when they think we ought to take another look at a question. It works, and it ensures that not every link-bait question gets put in some sort of "hey, re-open me!" state.
One of the reasons why we close one-time very popular questions is that the community can't really benefit from more answers. If anything, the answers should be pruned and maybe even compiled together. Another reason is that we want a bright sign that says, "Yea, this question garnered a lot of attention, but it's not the sort of question we really want a thousand of, so please don't ask a question like this again."
Without the off-topic questions staying closed, we're just inviting more of the questions we don't want.