The question then: how possible is it to write Zope(2)-neutral domain objects to be used in Zope 2? The documentation I've looked at hasn't been much of a help -- much of it just describes how to do in-ZODB coding, often still in DTML, which seems like the worst of all worlds. So maybe I'm missing Zope's potential there... but then, I suspect most people are.
There's *very* little documentation on how to write *good* Zope apps. A bit more on the prerequesites you need to write not-so-good Zope apps.