This is because the original asker has moved on with their life and doesn't care anymore. Maybe after a few years the accepted answer should be switched the one with the most upvotes? (Maybe with some margin, say, it must have at least 20% more votes than the next best one)
The answer with the most upvotes still gets shown. The problem is that much later answers that are more correct with later technologies, don't gather enough upvotes to make it to the front of the pack, so they get ignored.
Allowing duplicate questions, at least after some time, could fix this problem.
Yep - in fact it would make more sense to me if SO not only allowed duplicate questions, but also added a decay such that even highly-rated Q/A pairs would eventually get overtaken by newer content.
Questions and answers just aren't evergreen things that one can expect to last through the ages. And even if they were, treating them as such means that SO's new users generally can't contribute anything.
Maybe something like what HN does. From what I understand, recent things get shown higher here than older things. Older things need more upvotes to keep up. Probably something like votes/age or something.