У тебя зависимость не от версии, а от новой бизнес-логики. Если бизнес-логика появилась новая то логично что код растёт. Раньше у тебя был один способ отправить сообщение, стало два.
Это не версионирование апи, это уже просто развитие бизнес-логики, в которую мы что-то добавили и предоставили доступ через новую версию апи. Тут усложнение оправдано.
Другой вопрос, что сложность решения в коде не должна превышать сложность самой бизнес-логики. Добавив 1 новую функциональность и добавив на неё 1 метод, мы всё ещё держим ситуацию под контролем.
Тут момент в том, что если бы не было v1, то у меня в БЛ было required поле в команде для v2. А так - опционально. Тут конечно да, можно подойти с другой стороны - мы расширяем нашу БЛ. Но лишние условия делают код более хрупким, а тесты более сложными (пфф говорить о тестах и не юзать XD ).