The abstractions could be cleaner. I think some of the convolution is due to the evolution that it has undergone and core contributors have not come around to being fully “out with the old”.
I think there might be practical benefits to it. The XMC example illustrates it for me: