Specifically look at Metamodel and Cache.
For Metamodel its not really needed (used for access to services).
For Cache the concern is timing. We really need to split (1) understanding cache access strategy and region that should be used for cacheables and then later actually prime those in the Cache (create the access objects, etc). (see note in org.hibernate.metamodel.model.creation.spi.RuntimeModelCreationProcess#execute).
Related to in regards the same "pattern" (splitting parsing metadata and then acting on that parsed understanding).
A lot of work has been done on this. See for one specific continuation