My point of view: The message contains momentary and unchangeable information about the event. All reference data is (in general) changeable, unless you guarantee historical records that will ALWAYS represent the structure and the content at the moment in time the event took place. And moreover, the referenced data must be available for all current and future consumers of the respective message. These consumers might all be unknown from the publishers perspective and even to you as the designer of the system.
You can compare the modeling of the message with modeling a data warehouse (to a certain extend). Data normalization (creating references) in relational databases serves efficient and consistent change to maintain integrity. As the data in the message - just like in a data warehouse - does not change, the data is modeled to serve availability and not to serve integrity during change. The data in the message is denormalized, just like you denormalize the data in a datawarehouse. And just like you may want to avoid references from a data warehouse to external data stores, the same applies to event messages. -Jack
