"You guys have been working like
mad to port ACS over to Postgres. This is a lot of work. It's a lot of work because there seems to be only a thin
layer of abstraction between the code that makes up ACS and the database table structures. "
This isn't an intrinsic problem in the ACS, and even less so of the thin-layer paradigm used in its (cough) design. aD has no motive to abstract out the database queries. We do. It will happen.
So I view this as something of a red herring when considering the overall problem. Just as Zope's documentation problem is a bit of a red herring - there's nothing about the paradigm or approach Zope takes that necessitates poor documentation, it simply hasn't been a priority.
"Jim Fulton is something of an OO "zealot", so using an RDBMS to store
object data was not an option in his mind. So... he made his own OODB 😊 Mine is not to question why. He did it,
it's solid, and it's pretty damn useful. "
Zealotry is a sin in engineering. Your comment nicely illustrates my point that the Zope folks seem to have a need to build mountains out of molehills.
The ACS wasn't designed, it simply grew out of client-driven work. You might say that aD has had a tendency to ignore the existence of molehills. I prefer this sin to the sin of inventing needless complexity.