> Where SO started failing in my opinion is when the "no duplicate questions" rule started to be interpreted as "it's a duplicate if the same or very similar question has ever been answered on the site".
What else could it mean? The entire point is that if you search for the question, you should always find the best version of that question. That only works by identifying it and routing all the others there.
> That caused too many questions to have outdated answers as the tech changes
You are, generally, supposed to put the new answer on the old question. (And make sure the question isn't written in a way that excludes new approaches. Limitations to use a specific library are generally not useful in the long term.)
Of course, working with some libraries and frameworks is practically like working in a different language; those get their own tags, and a question about doing it without that framework is considered distinct as long as everyone is doing their jobs properly. The meta site exists so that that kind of thing can be hashed out and agreed upon.
> C# questions have answers that were current for .NET Core 1.0 and should be modified.
No; they should be supplemented. The old answers didn't become wrong as long as the system is backwards-compatible.
The problem is mainly technical: Stack Overflow lacked a system to deprecate old answers, and for far too long the preferred sort was purely based on score. But this also roped in a social problem: high scores attract more upvotes naturally, and most users are heavily biased against downvoting anything. In short, Reddit effects.