Writing cross-browser "desktop" html/javascript is very painful right now. The mobile world is a beautiful playground because IE isn't a serious player. Now if Microsoft would adopt WebKit for its mobile browsing, then I'd eat my hat.
Layers seemed easier than DOM...until you encountered the bug in Netscape 4 where you couldn't have two layers loading at the same time. I worked on Netcaster for a while, and we had to have a queue of (layer,url) pairs; when each layer was finished loading, its onLoad handler would notify the queue to load the next layer.