How does TDynamicProperties relate to this? Would it be any different if the fields were not in dynamic properties but in the entity itself?
Associations in Aurelius can be bidirectional, so you can choose which side you want to use the OnUpdating event. Nevertheless the events are per entity, not global. You still have to have a "higher level" of abstraction to eventually call Flush in the modified entities that are not part of the event.