You're conflating two different issues... memory management and memory updates.

For memory management, conventional wisdom for both OpenGL and Vulkan is that you want to make few allocations in the underlying API and do memory management yourself, so that you can store multiple vertex data sets in a single buffer at different offsets. This is critical for being able to do indirect drawing, where you execute a single command to render many models. Because you can't change the bindings within that command you can only render models that are all within a single vertex buffer.