Я понимаю преимущества динамического связывания (старый код может использовать преимущества обновлений библиотеки автоматически, он более экономичен), но у него определенно есть недостатки, особенно в гетерогенной экосистеме Linux. Это затрудняет распространение не зависящего от дистрибутива двоичного файла, который «просто работает» и повышает вероятность поломки ранее работавшей программы из-за обновления системы, которое нарушает обратную совместимость или вносит регрессию в общую библиотеку.
Почему с учетом этих недостатков динамическое связывание кажется столь универсальным? Почему так сложно найти статически связанные, не зависящие от дистрибутива двоичные файлы Linux, даже для небольших приложений?