There is some conflicting information on the STREAM usage specifier.
Apple's documentation states you should use double buffering and update the stream buffer that is not being read by the GPU.
OpenGL's reference documentation states you should only modify the contents of the buffer once. Which implies you should create a new buffer to write data instead of reusing the existing buffer.
Is there a reason to use the more complicated double buffering technique?