There are two final changes I've been thinking about making to the renderer before the 3.1 release candidate. Other suggestions are welcome as well. The beta is not too late to make improvements.
1) Pre-multiplied vertex colors:
As a carry-over from 2.x, vertex colors must be pre-multiplied on the CPU. It's annoying to do and could easily be preformed in the default vertex shader instead of well, pretty much every draw function. In the last couple weeks I really thought about changing this. It caused a couple of bugs when writing 3.1. You don't tend to find out you did it wrong until you try changing the alpha.
You need pre-multiplied vertex colors more often than not, and the default vertex shader is supposed to "just work" for most uses.
2) Flip textures during loading:
Cocos2D has always loaded textures upside down compared to GL convention (and it's own really), where (0, 0) is the lower left. Writing shaders and custom drawing methods is a little awkward because of it. On the other hand, a lot of Cocos2D structures (like sprite frames) store coordinates the other way (often inconsistently between pixels and points).
I'm relatively certain I'll change the vertex color pre-multiplication. Quite undecided about texture coordinates. Looking for some input.