Forced agglomeration is another. glibc-locale (openSUSE): ~117M. kernel: ~137M. libreoffice: ~219M, texlive: ~561M. Many of these can be combated with splitting packages. Yes, Debian gets it right (texlive is split, and locales are autogenerated in part), but unluckily, not everybody chose it.
Then, forced integration. Once upon a time, you could have a SUSE system without python (and without the then-nonexisting desktop/devel progs we take granted today). Now you need it for inkscape, llvm-clang, ibus, and whatever else. At the same time, perl use has not declined. I can already foresee that perl6 will find its way into systems without me even wanting it. Yes, Gentoo gets it right (can compile and deactivate), but unluckily, not everybody chose it.