BeanDefinitionBuilder is around since Spring 2 and was designed for XML handlers. In the meantime, programmatic bean definition became a thing, but the existing API is not as smooth as it should be.

There's no way to set specific settings such as the ResolvableType (as it is only present in RBD), and getting the bean forces you to cast it as everything internally works on AbstractBeanDefinition.

Comment From: snicoll

All things considered, this would make the API significant harder to read, with a raw warning for everyone using it and assigning a builder.