Isn't that mixing two different concepts? What has been discussed here before was sprite batching as in making something like a vertex array more automated/accessible. While what you describe sounds more like a node system. Is that the same?
(for example, when user do not want to use views becouse it is corrupting drawing of his GUI - yep that is my case - you can do it like XNA, and so passing camera with transformation matrix to sprite batch)
Sounds like you didn't understand how to use views properly. You can use multiple views to render things independently without "corrupting drawing", unless you meant something else.
I think it isn´t mixing different concepts. You can imagine SpriteBatch like another drawable (your example with VertexArray is perfect). Some pseudo-codes
You can use (for single sprite)
RenderWindow.Draw(Sprite);
For multiple sprites:
SpriteBatch.Begin();
SpriteBatch.Draw(Sprite1);
SpriteBatch.Draw(Sprite2);
SpriteBatch.Draw(Sprite3);
SpriteBatch.Draw(Sprite4);
SpriteBatch.Draw(Sprite5);
SpriteBatch.End();
RenderWindow.Draw(SpriteBatch);
And for sorting and other fancy stuff you can overhaul Begin (or End, idk where it belong better, for demonstration, let´s say begin)
SpriteBatch.Begin(Sort.Inverse, TransformMatrix, Blending.Add)
And for views, I mean using for example
RenderWindow.SetView()
For scaling, zooming, moving entire screen. And I do not want to create new render textures just for using 2 different views. Correct me if I do not got views functionality correctly.