Anton
Например у тебя поле Map.
Ты можешь подсунуть любую реализацию, не меняя клиента.
Или в обьекте Линия поля длины нет, оно расчитывается по координатам концов, а для клиента оно есть.
И да, если не еужно юзать инструменты, основанные на JavaBeans Spec или тесная связность с клиентом не важна, не будет наследования от класса, нет многопоточного использования объекта, то язык не мешает предоставить доступ к полю напрямую.
Например dto с самописными маперами вполне прокатит при жестком отказе от многопоточного использовпния. Выстрел в ногу будет только в объеме самописного кода, велосипедящего библиотечный функционал, использующий JavaBeans Spec.
А какая связь между геттерами и сеттерами dto и многопоточности?