Imagine Glibc is upgraded and you have 1000 packages currently installed in your system. A lot of packages from the tree must be rebuilt or will break with segfaults! In case of Gentoo the system will do this automatically. In case of Ubuntu(and binary based), in order for your wish to happen, there should be 2x1000 amount of packages - the same versions compiled with glibc_old and same versions compiled with glibc_new. The tree will expand greatly. Then, some packages change requirements and bindings upon upgrade. They change configuration files upon upgrade(grub0.98->grub1.98 for example).
The more changeable you want your system to be, the more times complex tasks package manager, maintainers and testers will have to do and the more packages will have to be merged into the system.
For this case, distros either:
- minimize the end target variation spread (either release type or rolling release with strictly defined packages), or
- provide a flexible build system, which is capable to build any version to any version(provided they are not outdated, maintainable and allow this combo). This is something source-based and Gentoo does.
- provide prebuild system with own settings and possibility to upgrade in binary way and possibility to get off the mainline and start doing it your way. Calculate Linux.
- provide a hybrid with standard, base system provided as binary and strict; and other part able to build from source - Archlinux, Slackware to some extent.
- or well, no package manager, your build and manage everything yourself by reading manual pages. Slackware.
Thing is, if you want every possible option, every possible option should be precalculated, pretested, prebuilt and checked for compatibility against every new package entering the repo. Great amount human/hours.