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