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