Эта статья будет вам очень полезна: http://www.nvidia.de/docs/IO/8230/BatchBatchBatch.pdf
ИМХО, вам лучше оптимизировать изменения состояния. То есть минимизируйте количество переключений шейдеров или текстур и т. д. Это «реальные» дорогостоящие операции.
Однако по поводу вашего вопроса. Рендеринг количества вершин из большого буфера вершин (по моему опыту) всегда быстрее, чем рендеринг из нескольких меньших.
Я не уверен насчет "переполнения кэша". Насколько я знаю, модуль извлечения вершин извлекает вершины непосредственно из памяти графического процессора (ну, кеш вершин есть, но он хранит только порядка 16 вершин). Единственное переполнение, которое вы можете получить, - это исчерпание VRAM, и в этот момент у вас возникают большие проблемы.
Единственная другая проблема с большими вершинными буферами состоит в том, что у драйвера будут проблемы с перемещением их в памяти. Это не проблема, если ваши вершинные буферы статичны, но вы можете увидеть более низкую производительность при изменении данных «на лету».