@jwz thanks to all the replies, but IMHO they've only served to illustrate the nature of my complaint. Why are all these workarounds (pyenv, pipx etc) even needed to begin with? It all comes back to the Python dev team eternally chasing after the next shiny thing while giving zero fucks about whether the new version is going to detonate all the code previously written to the language.
I get breaking changes in major versions (python2 vs Python, for example) but to break compatibility between minor versions and point releases is just a dick move.