There is nothing wrong with shared libraries. If you want to run an old program, you need to also run old libraries, and old network services it communicates with, and maybe old hardware too. Libraries are no different.
In practice it just isn't an issue, because competent application developers don't tie themselves to particular versions of libraries, and competent library developers don't make gratuitous backwards-incompatible changes.
Nobody is forcing you to depend on incompetently-written malware like GTK+.