By separating each functionality in the game world, into an independent module of its' own, both the server and clients can enjoy great flexibility.
This flexibility means that making tweaks and changes to the world's data is less prone to errors and bugs. However, it does make interaction between modules a weak-link, which requires repeat verifications, whenever they do interact.
The tradeoff is worthwhile, because even more important than logical efficiency, is the interactions that the world offers the players. There is a balance between efficiency and flexibility, and that balance tips wherever players are either frustrated of inoperability, or frustrated of boredom.