Many features of CDI and EJB work by means of a proxy that intercepts calls and adds 'aspects'. In Java it's however not possible to decorate the this pointer, so methods called on the same bean instance from within a method in the bean do not get their 'aspects' applied.
This is a well known limitation, but in EJB it's possible to work around this by injecting a bean into itself. E.g.
Unfortunately using CDI and @Inject this doesn't work. Weld for instance fails the deployment and logs:
Although there are workarounds, it would be great if @Inject in combination with CDI could support self injection as well.
With that projects migrating from @EJB to @Inject can do so more easily and the capability can be convenient for new projects as well (e.g. calling two separate @Transactional methods from a single method without being required to create a new bean).