I hate to suggest yet another step in the context hierarchy, but would it be better to have the OOTB beans in a parent and all extensions in a child? Together that parent + child would correspond to the single shared-server context we have currently. It just feels like using an initializer for earlier registration is side-stepping the standard bean definition lifecycle.