One word summarizes it all – ‘Legacy’.
Like many other softwares which have seen multiple releases – Plone/Zope suffers from its own past. Specifically I have developed an intense dislike for the lack of standardization in customizing Plone. Note: Plone/Zope are standards compliant to the letter.
You disagree (I can hear you think)?
Just ask yourself (or Google) how many ways can you override a view? Or how do you develop a product for Plone.
You just don’t get a straight answer. The answer depends on the “stack” (Plone/Zope) you are working on.
If the plone.org maintainers are reading this (I have a message) – Nuke all the articles (contributed by no doubt very smart plone developers) which are mostly useless and move towards a moderated wiki based documentation. For a content management system, Plone documentation is just awful and its organization even worse.