возможно, существует вариант использования вложенных / унаследованных классов или, возможно, где get / set может содержать логику вместо того, чтобы просто вернуть значение свойства
Я лично использую это, даже когда мне не нужна логика на геттере или настройщике свойства. Использование свойства, даже частного, действительно помогает будущему вашему коду, чтобы при необходимости добавить логику в getter.
Если я чувствую, что свойство может в конечном итоге потребовать дополнительной логики, я иногда буду переносить его в частную собственность вместо использования поля, так что мне не придется менять свой код позже.
В полузависимом случае (хотя и отличается от вашего вопроса), я очень часто использую частные сеттеры для публичных объектов:
public string Password
{
get;
private set;
}
Это дает вам публичный getter, но сохраняет setter частным.