Is there a special reason that the 3D renderstate use materials and materialrenderer and the 2D renderstate do not?
I'm just curious because the only real difference I can find is that in 2D mode the matrices are built differently and the polys are drawn somewhat different. But apart from that the 2D mode could also profit from the materailrenderer mechanism.
More historical reasons than logical. It simply grew this way. But it would be useful, you're right. The only thing is that it would be more difficult to use. But that's no problem if I'd change that, the simple 2D methods could just stay on where they are and continue to work.