https://ax.help.dynamics.com/en/wiki...elds/#defaults
DataEntity.
initValue: A data entity is initialized with default values and by using any custom logic that is present in entity-level initValue. This method isn’t called automatically when an insert or update is performed on a data entity from X++.
It must be called explicitly if it’s required. The method is called automatically by the form engine when a new record is created. DataEntity.initValue doesn’t call the initValue method for back-end tables that are used in the data entity.
Table.initValue: Table-level initValue, as defined for back-end tables, is fired when you perform a data entity insert. This is true for all paths (X++, OData, and so on).
Table.initValue is run just before the entity is mapped to data source fields.
Можно предположить что все default state случается при вызове super() в initValue(). И Set state при присвоении значения оператором присвоения.
Чисто фантазирую.