This kind of constraint should be defined in Constraints documents
and should to be checked in workflow transitions.
Checking a field as "required" can cause problems like not saving the data
when the user clicks on the save button. The same applies to the use of External
Validators scripts in fields.
You should not use it unless it cannot be checked using constraints or can put
the system in an unstable state. For instance, web page titles, documents
references are required fields because otherwise we couldn't find those documents.
Password fields on the Person view have a confirmation with an external validator,
because we don't want to lock out an user that mistakes his password.
Notice that it is accepted to define a field as required in dialogs.
Thinking that a property will always be entered by the user is a mistake, you
may think that a person will always have a name, but in real life for example
you will find some cases like: "Mr Smith" without first name, "Betty" from
Supplier company etc..