Yes, you can use VBOs for animation. Use GL_DYNAMIC_DRAW or GL_STREAM_DRAW. When data changes, write it using glBufferSubData or glMapBuffer. However you may wish to animate in a simpler way, such as by having every frame of animation stored in a large contiguous VBO, in to which you would offset.
The only time you can combine objects' meshes into a single, larger mesh is when you know they will not translate / rotate / scale in relation to one another. This is because any transformations you apply to one vertex in the subset you intend to draw, will cause all other vertices to be thus transformed, as well. So a house might be combined into a terrain mesh, but a person certainly could not be combined into that same mesh, since they use different transformation matrices.