IEvent.Sender currently (Standard version 1.x) is defined as an ILinkableComponent, so only linkable components can be the source of (OpenMI) events. This limits the use of the OpenMI event mechanism and of the seperate IPublisher interface.
Change the IEvent.Sender to be an IPublisher. ILinkableComponent already extends this interface, and this way other objects could do as well and make use of the OpenMI event mechanism. The other option is to make the OpenMI event mechanism really ILinkableComponent specific, i.e. rename IEvent to ILinkableComponentEvent and get rid of the public visible IPublisher interface.
For the 2.x release it would be good to look how these OpenMI events could be mapped better onto the event mechanisms of the supported languages (C# and Java).