Well yes, vertex arrays and single texture sheet performance improvements are, frankly speaking, completely insane.
Laurent said that drawing things with one texture first, then other ect.
may improve performance.
I think it's related to these lines but that's borderline too low level for me, I don't know open gl.
Uint64 textureId = states.texture ? states.texture->m_cacheId : 0;
if (textureId != m_cache.lastTextureId)
applyTexture(states.texture);
Last line ends up in gl's bind which (apparenly) is so heavy that creating tilesheets is worthwhile task peformance wise, but this really may not be true.
Also keep in mind size of texture matters(at least in my case). I got almost 2x more time usage with 1024x1024 texture instead of 32x32 one with around 6-9 untransformed vertex arrays, each with 1024 vertices(but still extremely ahead of required time cap).