We could go a step further and extend rpm and dnf to support multiple versions of same named packages for installation. This is doable but not necessarily trivial.
Having rescued this week a system in abysmal stale, with traces of rpm forcing right and left, I'd say this would also require a robust way to list all the installed versions, and operate on a specific set of them, in rpm/dnf refresh/remove modes
And that would also require some thought on how to repoquery and license audit. A version bump can mean rehosting and licensing changes, not just another variant of the same code.
Regards,