Not sure exactly how zsh does it but I know not having the option for both global and local tracing can be annoying.
The two big ways of handling xtrace I mostly see are either bash's global `set -x` or ksh93's per-function tracing, and it can be annoying to be missing either one. There are tricks for getting the effect of global xtrace and/or DEBUG traps in ksh, but its lack of a BASH_XTRACEFD equivalent means it's sometimes impossible to hide the side-effects of those tricks, so you get messy output. With regards to `typeset -ft`, I don't like it. DEBUG and RETURN have totally different usages. Inheriting RETURN very rarely makes sense, but I almost always want DEBUG inherited because of course it's primarily used for debugging.