Я думаю, что нет правильного метода. Как вы сказали, нам нужно обсудить компромиссы.
Разработка с использованием одной модели для всех слоев может ускорить вашу разработку. Вы не будете тратить время на создание нескольких DTO (а также не будете создавать сопоставление между вашей моделью сущности и DTO). Тем не менее, вы будете пара всех. Небольшое изменение в вашей модели может повлиять на все слои, и вам, вероятно, придется иметь дело с этим. Больше усилий может быть потрачено всякий раз, когда вам нужно адаптировать свой код.
Альтернативой является наличие DTO (или выделенных / специфических моделей) для каждого уровня, что может увеличить время разработки. В этом случае, когда запрашивается изменение, влияние на другие уровни может быть небольшим. Я имею в виду, что риск разбить вещи в других слоях уменьшается. Как и в вашем вопросе, изменение в модели сущностей не повлияет на REST API, поскольку оно предоставляет только DTO.
Подводя итог, основной вопрос: вы предпочитаете "скорость разработки" или "потерю связи между слоями / классами"?
Как видите, все зависит от ваших потребностей.