Self Contained Package vs Loose Files or MSI
I remember when the "Loose Files" first started appearing and why. It was to limit code redundancy since many applications could use the same libraries. Of course, the flaw was that your application needed a particular version of that library and, as time went on, was less and less likely to find it already on the system (or you were less and less likely to trust the versioning), so you had to bring it along yourself.
Of course, now that memory and storage are no longer an issue, make 'em all self-contained! (ahem)