I used glCopyBufferSubData() quite a lot. My vertex array buffers need to grow from time to time, and it was a great way to increase the size of the buffer without involving CPU as a middleman to copy the data.
Is there any alternative? How would you even go about copying buffer data? do you actually need to read it from Vram into some buffer array and then write it into another VBO?