The lesson learned here is clear, never adopt a system where access to your data is tightly coupled to the code that renders it. The failure of Object Oriented Databases and Proprietary Code Repositories give ample historical lessons as why such an approach leads to failure over time. The flexibility afforded by a generically accessible data will always outweigh the benefits of structured data store access.
On a (somewhat) related note, I only recently stumbled across the Axioms of Web Architecture:
Computer Science in the 1960s to 80s spent a lot of effort making languages which were as powerful as possible. Nowadays we have to appreciate the reasons for picking not the most powerful solution but the least powerful. The reason for this is that the less powerful the language, the more you can do with the data stored in that language. If you write it in a simple declarative from, anyone can write a program to analyze it in many ways.