Regarding why not your home directory: which version of Foo do you install, the one that Project A needs or the incompatible one that Project B needs?
The brilliant part about venvs is that A and B can have their completely separate mutually incompatible environments.
Why can't we just have something like npm/gradle/maven dependencies? What makes python any different?
They have their place. But the default shouldn't force you into a "project" when you want general purpose applicability. Python should work from the shell as readily as it did 20 years ago. Not mysteriously break what used to work with no low-friction replacement.