In our entities, we often override Entity.OnPropertyChanged to execute logic when a property changes. After a lot of debugging, I just found out that OnPropertyChanged does not get called if there are not any subscribers to the Entity.PropertyChanged event. I can understand the rational behind this - some kind of optimization I suppose. But in our case, we always want OnPropertyChanged to be fired - even if nobody external is watching the entity for changes, the entity itself might be waiting for property changes.
As a hack, I've updated our entities to attach a dummy handler to PropertyChanged when they are first created and that seems to fix the problem.....but it doesn't feel like a very nice hack. Is there a reason that EntityAspect.FirePropertyChanged short-circuits if there are no subscribers? It doesn't seem like it'd be that much of an overhead and it seems like non-obvious behavior to me.