Why is the build process so hard to understand?

From Kedar:

The code is too dense. It uses generics to add to complexity. Build does some black magic.
The annotation processing during compilation (build) creates sources that are then built. There is very
little reliable documentation. More importantly, it is very advanced in certain cases, especially the hk2-portion of it.