Я только новичок в Grails, но насколько я понимаю, командный объект - это в основном умный способ связывания данных для входящих параметров, чтобы вы могли проверить их дальше или, возможно, выполнить некоторую обработку для них. По сути, он берет проверки ограничений модели домена из самого класса домена и массирует свойства, прежде чем они передаются объекту домена для сохранения (часто через службу).
Таким образом, объекты команд (для меня в любом случае) не являются местом для бизнес-логики транзакций на объектах домена.
Кроме того, поскольку сервисы могут быть внедрены в другие классы, таким образом вы можете повторно использовать бизнес-логику в сервисах. Если вы размещаете свою логику в объектах команд, внедрение зависимостей для вас не вариант, и вы можете в конечном итоге дублировать логику среди различных объектов команд.
Так что, поскольку вы можете внедрять службы в свои командные классы, я думаю, для вас может иметь смысл пойти по этому пути.