VAOs reference the buffer object, so if you change its contents or reallocate its storage, any uses of the buffer object will see this.
However, you should not do this. The ARB released an extension/core feature last month who's main purpose is making this impossible. That's not the only thing that extension does, but it basically is what makes the rest of it work.
That's how much the ARB and IHVs think about you reallocating the storage of buffer objects willy nilly. So don't do it. If you need a buffer to stream data into, that's great. Just allocate a reasonably large one and do streaming into that. You can use glBufferData(..., NULL)
to invalidate the buffer (assuming that you can't map it for invalidation or use glInvalidateBufferData
). But you should never be changing the buffer's size when you do this.