I see the point now. In some circumstances, a consistent structure can help. Mostly in applications with relatively small througput. Having a single datastore for all components will definitely help. I have done one of my projects this way, and it works pretty well.
However, some other applications will not benefit from such archtecture. When dealing with massive throughput, you will usually pick a different datastore for each component. Mongo is very suitable as an event store, but may not be the best solution as a querydb.
Using a cache on the command model will enhance throughput. A cache on the query model will generally not bring you much. In fact, the whole idea of the query model is that you can denormalize it to simplify (and thus speed up) query execution.
The whole idea of CQRS is that you should apply it in an architecture that is tailored to the specific needs of each project. That's the fun of it! (especially when it comes to implementing Axon to support al possible uses...)
Cheers,
Allard