I didn't use the CMF built-ins partially because this was tailored
to the needs of Zope Product I developed (PABlog) and partially
because the Python Script approach suits my needs better, being
modular and marginally faster, and fulfills the rule of seperation.
The DTML approach is cumbersome, and ZPT would be possible I'm
sure but would take longer to develop and likely be less simple
than the Python Script approach.
That being said, use what works best for your situation. If the
DTML or ZPT approach or the built-in suit your needs, then use
them. That's why there are many ways to do it ;)