Due to the way Component#getType() is implemented, we generate a LOT of basic proxy classes for each entity.
On a simple test case, I got:
The fact that we initialize the ComponentMetamodel for each getType() call generates a new basic proxy class for each call.
Moreover, the proxy is created for the entity class deep into the component (e.g. a property) stack trace and not shared for all the components of the entities.