"egy kis 1MB-s alkalmazás is több 100MB-ot fog foglalni a rendszeren"
Na és? Cserébe minden csomag szállíthatja magával azt a verziót amivel kompatibilis. Pl. ha láttál már node.js alkalmazást, ott minden csomagnak külön települnek a függőségei, és mivel a függőségek maguk is csomagok, egy gyakrabban használt csomagból akár több verzió is jelen lehet egyetlen node alkalmazásban. De ezt semmilyen dependency problémát nem okoz, minden kódrészlet azt a dependencyt látja, amit magának definiált.