I also suspect that using mismatched vertex formats between the vertex buffer and the shader will cause a few internal recompiles
I don't understand. Why would they be mismatched?
The reason I want to stick with vector is that the mesh class does a lot more than just loading and storage. I have a bunch of mesh processing functions in there. Refactoring to a new datatype will mean changing a class and supporting code that's around a thousand lines.
[Edit:] The driver interleaving the streams doesn't make sense for modern hardware, as if that were necessary, then I don't see how vertex pulling from multiple SSBOs could work.