In fact, this is probably the way it'll end up long term, and it can be easily integrated into the current system using something like:
That is, at a basic level, how mine work. The only difference being that mine doesn't have TextureShader/BrushShader/LightShader. It could work, but I think it's better to just write vertex and fragment shaders for specific tasks and combine them for specific purposes.
E.g., combine a lightmapping fragment program and a generic vertex shader that simply transforms the vertices without any animation operations and such.
I have some ideas on how the chunks method could work, will have to try them out later.