Домен против DTO против ViewModel - как и когда их использовать?

В многослойном проекте с Доменным уровнем (DL) / Бизнес (сервисным) уровнем (BL) / Презентационным уровнем (PL), каков наилучший подход для доставки сущностей на уровень презентации?

DO => Domain Object;
DTO = Domain Transfer Object;
VM => View Model;
V => View;

Опция 1:

DL => DO => BL => DTO => PL => VM => V

Этот вариант кажется наилучшей практикой, но также кажется тяжелым для поддержания.

Вариант 2:

DL => DO => BL => DTO => PL => V

Этот вариант кажется не очень хорошей практикой, но, поскольку DTO почти идентичны виртуальной машине, мы можем передать его непосредственно в View, и его внедрение и поддержка менее сложны.

Является ли эта опция надежной и для нескольких макетов, например, для мобильных устройств мне может потребоваться меньше информации от BL, поэтому мне понадобится другая виртуальная машина для этого конкретного макета?