Dojo 1.0.0 is out. Woo!! It's very exciting. I've been using Dojo on a few different projects recently, mainly because it was there and did what the client wanted. It had a little bit of a learning curve, but coming from XUL it's not much of a stretch. A different type of HTML instead of XML in the form of XUL. JavaScript is the same, a little different if you want to watch it and make sure it works in both browsers, but Dojo provides a lot of that functionality as well.
Ok, I like to keep the base file small, and load up the content with innerHTML. But basically, and it took me three days to find this, if you load content via innerHTML, to parse it into Dojo's magic, you need to do this:
dojo.parser.parse(dojo.byId("main_panel"));
Replace main_panel with whatever div holds all your info. This lets the world be a little more dynamic, and lets you, as I am, use a templating engine in the back, yet still take advantage of all that Dojo has to offer. Excellent.
