Right now, it's not explicitly defined whether EjbDescriptor instances passed to resolveEjb() and registerInterceptors() are of the same implementation as provided by BeanDeploymentArchive.getEjbs(). Some integrators expect to receive the same instances as provided. However, internally an EjbDescriptor wrapper is used. And for resolveEjb() a delegate is always passed (see also SessionBean.createReference()) but for registerInterceptors() the internal wrapper is passed.
We should pass the delegate to all methods to be consistent.