I edit ZPT in GoLive often. It took only some minor coaxing and you do have to keep an eye on what's going on when working in visual mode, but it *can* work.
Beyond that, ZPT has really really gelled in my brain, with or without a visual or structured editor. It is a weird learning curve as it's a style that's somewhere between imperative structures like Cheetah and whatever XSLT is.
Thanks to ZPT, I've stopped treating HTML textually, almost completely. Each select widget, hyperlink, becomes a living breathing object instead of merely a placeholder for a value to be inserted. I really like that it allows me to do this without my having to wrap my head around more painful DOM concepts.
ZPT *can* be used to make non-HTML files, but it's painful and is stepping outside its design goals. But it can be done (I see people do it on occasion, and I'm always shocked).
I especially agree with you on ZPT's compromise on embedded code. The TALES engine (which potentially allows other expression languages to be installed) is a really nice feature, and I like that you can use Python to do complex conditionals, extra formatting, and so on, without yet another micro-language having to be invented. The TALES engine also allows the actual TAL language definition to remain quite small and simple.
With very few exceptions, all of my sites have been much easier to maintain since moving to ZPT, and it's been a lot easier to work with our design team. The developers still add in almost all of the TAL/METAL statements when they hand us their designs, but the big savings tend to come when we have to do major design changes.