Balíčky (nejen binární, takže do toho teď počítám i Gentoo a spol.) existují proto, abych mohl snadno
(a) odinstalovávat
(b) upgradovat (což znamená odstranění starých souborů, ale nepřepsání nebo uschování konfiguráků, etc.)
(c) zjišťovat různé zajímavé věci -- kde se mi asi vzal v /sbin ten program fcku0? udělal jsem v oproti instalaci nějaké změny v /etc/foobar/foo.cf? jaké další soubory jsem tehdy nainstaloval zároveň s /usr/bin/quux? má ten exaggerator3002 někde nějakou dokumentaci? a pod. (možnosti zjišťování závisejí na implementaci, ale uvedené dotazy jsou běžnou featurou)
(d) zopakovat postup kompilace, včetně aplikace patchů a pod., případně přenesení zkompilovaného výsledku jinam (binární balíčky)
(e) ...
I když kompiluji sw např. na RH ze zdrojáků, dělám to obvykle tak, že napíši spec file a udělám balíček. Pokud už ten sw nebudu nikdy upgradovat, tak se to nevyplatí, jinak se to vyplatí stokrát, zejména pokud jsou kromě triviálního bezparametrového ./configure && make && make install zapotřebí nějaké další kroky.
Závislosti jsou sice běžnou featurou balíčkovacích systémů, ale nikoli jedinou, a možná ani ne hlavní. Špatné zacházení se závislostmi je problém konkrétní implementace a často konkrétního blbě vyrobeného balíčku.