Сеттеры частенько делают проверки и валидации значений; в случае геттеров, они могут комбинировать значения нескольких полей. Логика меняется в одном месте, а не во многих.
Java библиотеки, например сериализация, а соответственно и фреймворки, основанные на них, используют геттеры и сеттеры