В подавляющем большинстве случаев lazy var можно заменить на computed var или let с инициализацией в момент конструирования инстанса, но есть редкие случаи когда lazy var нужен, поэтому совсем запретить lazy var нельзя.
А необходимости в lazy var без private(set) я ещё нигде не встречал.
Ок:

Не ок:
