Ответ на этот вопрос зависит от вашей точки зрения. Я говорю, что изменение договора вообще нарушает договор. Вот почему они называют их "контрактами".
Изменение контракта на обслуживание путем добавления дополнительных операций «ломает» клиента, потому что это изменит их прокси-код. Во многих корпоративных средах такое изменение требует прохода QA, даже если существующий клиентский код не вызывает новые операции. По сути, добавляя операции, вы редактируете код клиента. В этом смысле ясно, что QA требуется.
Нет необходимости изменять договор на обслуживание, когда вместо этого вы можете создать новый договор на обслуживание и реализовать его в другой конечной точке. Вы даже можете иметь новый сервис, реализующий как старый, так и новый контракты, и совместно использовать точно такой же код для реализации старого.
Я также один из старомодных типов, которые считают, что вы должны использовать другое пространство имен для другого контракта. По крайней мере, в придирчивом смысле старые и новые контракты различаются, поэтому потенциально одно и то же имя может означать разные вещи между ними. Этого можно избежать, если новый контракт получен из старого, так что старые имена останутся в старом пространстве имен, а новые имена будут в новом пространстве имен.