Да, это всё менеджеры пакетов, автоматически подгружающие пакеты и их зависимости по именам и совместимым версиям и умеющие запускать команды.
В PHP это Composer
В NodeJS это NPM, Yarn
В Java это Maven, Gradle
В Python это Pip
В Ruby это Gem
...
К тому же, Composer в PHP уже реализует автозагрузку классов.
В миниатюрных проектах из трёх файлов это оверхед, так как можно просто скопипастить к себе чужой код из поста в блоге или файл из архива, подключив файлы через require.
Но в крупных проектах с десятками и сотнями библиотек с тысячами классов все их вручную скачивать из архивов и обновлять будет весьма сложно. Там чужие пакеты с их установкой и обновлением через пакетные менеджеры экономят много сил и времени. И это большая экономия мирового масштаба, когда программисты используют пакеты друг друга вместо написания этого снова и снова. А сам Git за чужими релизами, совместимостью и вложенными зависимостями следить не умеет.
А что касается поломок при обновлениях, то это решается анализаторами с тестами, чтением Changelog при мажорных и минорных обновлениях, а также мониторингом ошибок.
При этом хоть вы из нового архива свежий класс вручную скачаете, хоть в пакетном менеджере пакет обновите – всё равно у вас что-то может также сломаться.
Единственное отличие от ручной работы лишь в том, что нельзя менять классы внутри vendor. Вместо этого можно либо воспользоваться архитектурными паттернами для подмены проблемных частей, либо форкнуть пакет к себе, исправить и перейти временно на форк, отправив автору Pull Request; либо временно скопировать проблемный класс в свой код, исправить и подменить через autoload files.