Where it gets interesting is when we start looking at the cross-platform languages like Python, Perl, Ruby and Java.
Java goes to the extreme of "bundle all your dependencies". This is wonderful for portability, but makes rebasing a nightmare.
Python/Perl/Ruby et al (and I believe credit really goes to Perl here for blazing the trail with CPAN) all instead adopt the model of a central repo focused on that particular language. This is great when you only need to deal with a single language, but sucks once you have to start dealing with multiple languages. This is why we now see people resorting to bundling their Javascript dependencies - the language specific tools have no mechanism for dealing with a parallel dependency hierarchy between Javascript libraries.