Знаю такой ответ: потому что настают моменты, когда автор библиотеки «sobaka» выпиливает старый код/API в новых версиях, а двум разным софтинам «Dura» и «Mihalych» нужно разное в этой библиотеке - «Dura» хочет старые методы (потому что автор Dura помер и больше некому поддержать), а «Mihalych» хочет новые.
А почему не декларировать инновационный подход к разработке библиотек, если ты не соблюдаешь который, то ты псина и тебе не место в мире нормальных дистрибутивов? Например, захотел выпилить старые методы - идёшь нахрен - так нельзя. Обязан поддерживать в виде, обеспечивающем минимум старое поведение - то есть минимум просто ничего не делаешь. Захотел навернуть офигенно новый функционал, который конфликтует со старыми версиями - пилишь новую либу с новым именем, старую не трогаешь. Ну короче как-то так.
Возможно я козёл и такие дистры уже есть и такие манифесты уже внедрены в мир? Обсудите!