The current approach to theming (also known as "skinning") the Plone sites (Plone 1.0 to 3.x) has been steadily evolving over a number of years, and is powerful, but somewhat complex.
As with most software, the reason for this complexity is usually a side effect of the evolution of the product—adding more functionality and more flexibility to meet the needs of power users, while still retaining the same approach to the problem space.
For Plone, the current theming approach has served us well for the last 8 years, but we realized it was time to reevaluate how theming was done, as it's such an integral part of managing a Plone site.
The main goals for a new approach were:
No requirement for the people doing the theming to know anything about Plone or Python.
Use standard tools and libraries whenever they are available.
Reduce the number of concepts you have to learn in order to get started.
When requiring you to learn something new, let it be a standard solution that is useful...