The driver will detect you're rebinding it and ignore it. What you measured was the cost of the call instructions and checking if the VBO was bound, and not the actual cost of changing bound VBOs.
A modern computer can definitely not handle 125.000 swaps at 50hz at all.
What matters even more in real world is the driver (with APIs like OpenGL or DX11) doing validation (lots of pointer chasing) and that will cause cache trashing, which is the main bottleneck on any half modern CPU.
So tests where you only switch between two VBOs all the time or where you only push OpenGL to its limits but the actual test application is small and has a minimal footprint on the cache, do not show you real world performance.
The question of how many VBOs you want to use is easy to answer: Its just a cost/benefit of performance vs effort.
If your application is very small: put every object in its own VBO = easy and fast to develop
If your application gets bigger: Combine objects to a single VBO to minimize driver validation costs = more work to develop, better performance
Also I would recommend not to use VAOs (Excluding the single VAO you need if you run a core profile).
Use GL_ARB_vertex_attrib_binding (Core since 4.3) if available and otherwise old style glVertexAttribXFormat to emulate the same behavior where you have a clear cut between vertex layout and vertex data (VBOs).