I'm surprised nobody mentioned the separation of code and data in the XML vs Lua debate. I like to keep my frames out of my code, which is why I like to create frames in XML, even though I sometimes create a few low-level frames programmatically. As mentioned above a WYSIWYG is not a necessity (I don't use any, notepad++ ftw), what matters for me is the ability to see my frames in a clean hierarchy (code folding helps a lot).
About the wow client simulator, I'm behind DigitalSorceress on this one, I'd love to see that :)
You can still achieve the separation by creating your frames in a separate Lua file instead of a separate XML file.
I tried creating frames both in XML and in lua for HeadCount, which was my first incursion into the world of WoW addons, and found out the following:
1. There are better examples online (via a simple Google search) for creating WoW frames online using XML than there is via lua script code.
2. Defining XML-based frames allows for more intuitive code separation between your presentation (XML code) and your application logic (lua). This is not absolute as the two portions are tightly coupled no matter how you generate frames for your addon if you want to present data via a UI frame.
3. Using lua is more intuitive if you want to generate dynamic frames, specifically relating to dynamically creating or removing frames on the fly, changing positioning, sizing, or grouping of frames via application logic.
4. Using lua to create frames may be more intutive since you need to write your frame event handlers in lua regardless of where the event handling code actually is present (in lua files or in the XML element event blocks).
I used XML to create my frames and do a lot of processing on them in a lua event file. I did all of the XML generation by hand.