«при обновлении пакетов, таких как glibc, вам нужно перекомпилировать все, чтобы отразить изменение», верно только в том случае, если ваше программное обеспечение построено на основе статической библиотеки. Что почти никто не делает. Потому что перекомпиляция это боль. Вместо этого все строят против общего объекта, а это означает, что если библиотека будет изменена, то приложение получит измененную библиотеку.
Ну, это немного сложнее, чем с API, SONAME и прочим, но это основа.