La respuesta que tengo (gracias al usuario 3467290):
Hay una diferencia muy importante entre estas formas.
En el primero, se generará el valor de registro, utilizando todas las restricciones definidas, + la restricción que escribió en esta acción (campo1 == 1). El nuevo valor generado se escribirá en el DUT.
En el segundo código, lo que dice es que desea modificar solo un campo del registro - campo1. Lo que sucederá es que vr_ad obtendrá el valor actual del registro del modelo e (el modelo de sombra), cambiará el campo1 y escribirá el nuevo valor del registro en el DUT. Ninguno de los otros campos de registro será cambiado. Además, no se verifica si el valor que asigna a field1 cumple con las restricciones definidas en este registro.