Because in practice nobody has solved it, while everyone claims they have.
In practice every software needs a particular version of a library. Even a minor upgrade to that library might, and will break it. In an idealized world it should not happen, but here we are. In a world that we setup whole containers so that we can run software.
So no. Shared libraries do not work in practice. At all. It should be straightforward, but they just do not work.