Метод пакетных менеджеров в теории лучше, например тем, что в системе не происходит лишнего дублирования функционала(либ и пакетов). Кроме того, если в допустим в SSL находят баг, то надо обновить только этот пакет, а не весь софт, к-рый юзает SSL(а патчи на какой-то софт могут например задержаться или он вообще заброшен). Ну и централизованность и другие плюшки тоже.
Т.е. в теории это подход более правильный, но практике возникают некоторые сложности, пакетным менеджерам есть еще куда расти, чтобы стать идеальными.
WinSxS не держит одинаковые копии библиотек, а только разные их версии. Инсталлер не может на 100% проверить совместимость с более новой либой, поэтому и ставит свою версию(если ее нет в системе), ибо с ней софт был протестирован. У хорошего софта все таки есть такое понятие как QA и на авось пытаться работать с новой либой тут не будут. Если бы можно было пределить совместимость, так бы давно и сделали. Но точно такая же проблема определения есть в линухе. И кстати, линь же тоже хранит разные версии библиотек.
Странно тут так боролись за чистоту термина ОС, а к винде зачем то приплетают сторонний\старый софт и сторонние инсталлеры. Далее, а разве под линухом механизм деинсталляции намного лучше? Ничуть. И, кстати, под виндой обычно без костылей прекрасно могут жить разные версии одного софта, а вот под линуксом только с костылями.