Take a page from the proverbial "Book of Java" -- delegate form layout into a layout management object. Err , I'd rather we look at how XUL / mozilla handles forms.
Emulating swing in html/css seems like the worst possible course of action. Does anyone here know struts? (which is closer to what we want to do, afaik). struts is a bit weird, probably a great technology though.
I think with the theme_* interface drupal already has a good approach. The biggest problem with forms in Drupal is that the "separation of concerns" is not clear. I like Gerhard's proposal because it would allow to decouple forming [sorry] the form structure from preparing the form presentation. The only slippery thing I can see is that it might make the form templates more complicated for designers. But they are not very useful at the moment. ergo: +1 Vlado