"ao atualizar pacotes como o glibc, você tem que recompilar tudo para refletir a mudança" só é verdade se o seu software for construído contra a biblioteca estática. Que quase ninguém faz. Porque recompilar é uma dor. Em vez disso, todos são construídos em relação ao objeto compartilhado, o que significa que, se a biblioteca for alterada, o aplicativo selecionará a biblioteca alterada.
Bem, é um pouco mais complicado do que isso com APIs e SONAMEs e tudo, mas isso é o básico.