Objetos de valor en CQRS: dónde usar

Digamos que tenemos una arquitectura inspirada en CQRS, con componentes como Comandos, Modelo de dominio, Eventos de dominio, DTO de lectura de modelo.
Por supuesto, podemos usar objetos de valor en nuestro modelo de dominio. Mi pregunta es, ¿deberían usarse también en:

ComandosEventosDTO

No he visto ningún ejemplo en el que se usen objetos de valor (VO) en los componentes mencionados anteriormente. En cambio, se utilizan tipos primitivos. Tal vez son solo los ejemplos simplistas. Después de todo, mi comprensión del uso de VO en DDD es que actúan como un pegamento para toda la aplicación.

Mi motivación:

Comandos
Digamos que el usuario envía un formulario que contiene campos de dirección. Tenemos Objeto de valor de dirección para representar este concepto. Al construir el comando en el cliente, debemos validar la entrada del usuario de todos modos, y cuando está bien formado, podemos crear un objeto de Dirección allí e inicializar el Comando con él. No veo la necesidad de delegar la creación del objeto Address al controlador de comandos.

Eventos de dominio.
El modelo de dominio ya funciona en términos de objetos de valor, por lo que al publicar eventos con VO en lugar de convertirlos a tipos primitivos, podemos evitar algunos códigos de mapeo. Estoy bastante seguro de que está bien usar VO en este caso.

DTOs.
Si nuestros DTO del lado de consulta pueden contener objetos de valor, esto permite una mayor flexibilidad. Por ejemplo, si tenemos un objeto Money, podemos elegir si mostrarlo en EUR o USD, sin necesidad de cambiar el Modelo de lectura.

Respuestas a la pregunta(4)

Su respuesta a la pregunta