Basically, there are two types of injections.
When you take a closer look the characteristics of the two types differ in some crucial ways:
Type 1 only concerns complete entites, that is, entities that at some point have been created by the owning application and therefore are known to be complete.
Type 2 concerns entities that can be incomplete and therefore must be checked for "completness" by the application.
For systems with only type 1 injections only the callback OnInjectedNewEntity will be receivied and the injceted entity is guaranteed to be complete.
For systems that also have type 2 injections any of the callback OnInjectedNewEntity, OnInjectedUpdatedEntity or OnInjectedDeletedEntity can be received and the received entity must always be checked for completness.
The current dob design takes a transparent approach regarding the interface, which means that there isn't a clear distinction between the two injection types and this might be confusing and lead to applications that either is more complicated than necessary or that isn't handling the "incomplete state" case in an appropriate way.
Consider making distinct interfaces for the type 1 and type 2 case so that it becomes more clear what an application has to do in an specific callback. An interface separation will also enable building of more simple applications in system that not is designed for type 2 injections.