Я думаю, что здесь можно провести различие между API-интерфейсами для сервисов и API-интерфейсами для библиотек.
В случае сервисов эти API-интерфейсы не должны нарушаться.Добавление интерфейсов для них не повлияет на существующих потребителей.
Изменение API библиотеки требует перекомпиляции только в том случае, если потребитель хочет использовать более новую версию библиотеки.В любом случае это, скорее всего, приведет к перекомпиляции, и простое добавление в интерфейс не потребует изменения существующего кода (вы можете пометить устаревшие методы с атрибутами, если это применимо).
Если вам действительно нужно сделатькритическое изменение в API, тогда да, потребители должны будут изменить свой код, чтобы сделать его готовым к сборке.
Хотя это не следует воспринимать легкомысленно, есть много очень популярных библиотек, API которых значительно изменились с течением времени(Свободное NHibernate приходит на ум), и, по крайней мере, с моей точки зрения, боль обновления моего проекта минимальна, особенно с учетом улучшений, которые сопровождают эти обновления.
Я думаю, что для библиотек естьожидание того, что при принятии новой версии может потребоваться некоторая адаптация.Аналогичным образом, ожидается, что, если API не не изменится, рабочий код не должен отображаться как сломанный новой версией.