Let's say I have a buffer object with vertex data on the GPU. And I also have a buffer object with indices on the GPU, in preparation for use of glDrawElements.
Let's also say the geometry I am working with very precisely defined and simple enough so that I can do this kind of thing:
Multiple calls to glDrawElements, using different modes of primitive generation (GL_QUAD_STRIP, then GL_TRIANGLES).
Doing this will allow me to use a smaller buffer object for the indices. But is there a performance penalty for sending multiple commands rather than just one?



Multiple can mean 10, 100 or a fews thousand and so on. If the general number of batches is low enough, you don't need to bother reducing draw calls since your app will most likely not be CPU limited anyway. This means that even if you condense all calls into a single call, you will probably get nothing out of it performance wise since your bottleneck is somewhere else.