Perhaps we don't need a tag for every single version, but I agree that over time, there have been significant changes that justify some type of differentiation. But there's another key difference that justifies some form of differentiation, LTS vs. interim releases.
LTS releases are stable, built from interim releases after components of those have stood the test of time. Interim releases are just a tad better than beta tests. They allow a big user base to find bugs. A lot of the problems associated with interim releases are the bugs the releases are intended to ferret out.
Many of the interim release tags have a relatively small number of questions. Some of those problems aren't really specific to the release, the tag is just informational. Some are specific to release-based problems. We could go through them and use a more generic tag for the applicable questions. However, we would still be left with pretty much the same collection of tags.
We could reduce the number of tags by leaving at least the recent LTS tags (say the last few major versions. Relatively recent interim releases could be grouped and associated with the next LTS release number they feed. However, that would be really confusing for users, many of whom don't understand the details of the release cycles.
We could also group or synonomize release-specific tags older than several LTS releases with a generic [Ubuntu-legacy] tag or something similar. This would require ongoing maintenance. I'm not sure the effort would really add value.
Bottom line: We probably don't need every single current Ubuntu tag, but we benefit from some number of differentiating tags. Anything we do at this point to reduce the number will have pros and cons, and I don't see any real benefit to the exercise.