Most of the trouble with forms comes form strange choices in drupal.css, and also the default form_*() functions behaviour of not letting labels be on the same line as the text box.
Another thing is that what gets printed inside page $content area isn't standardized across modules. It could have a div class="node", it could be a collection of random tags..
Maybe modules that print out custom node types should behave more like blocks when they are printed out and have class="node node-$module"?
The valid html vs. xhtml, and hardcoding markup in module output is a bigger issue beyond just being able to theme clearly and easily.