I agree, but for cross-browser support we basically need to drive everything dynamically. The DOM and styles we generate in IE looks very different than the DOM and styles in other browsers, for example.
Other than that, for your own purposes I’d always use editing inner html of standard elements. It can take code, and can better integrate for items like forms. This will get integrated as a div in the DOM of your document.
In the early (1.0) days of Hype, there was no HTML Widget element. I think we might have gotten overzealous with that feature and people probably use it more than they should. I might think about adding a “Empty Div” element or better label on the iframe.