Давайте не примере: Скажем есть условный сервис чатов, с публичным методом SendMessage который принимает на вход набор параметров или структура типа userId, chatId, message.
Полноценна валидация скажем должны включать:
1) Сообщение: санитайзинг, обрезка проблелов, проверка максимальной и минимальной длины
2) Существование юзера
3) Существование чата
4) Наличие прав у этого юзера отправлять сообщения этот чат
И вопрос спора в том что из этого должно к примеру происходить в контроллере а что в сервисе, вопрос КАК - дело второе.
Из перечисленного выше кроме пункта 1 явно должно быть в сервисе, но какой смысл оставлять 1 в контроллере если и этому на мой взгляд тоже место в сервисе. Спор наш возник в том что я не вижу смысла что-либо валидировать на уровне контроллера, но возможно я не прав, пытаюсь понять.