Sure, /if/ your content is the type that can be presented in a text-oriented, page-by-page manner, then creating simple, barebones HTML pages is smart coding.
Actually, that's not the case. It's just a matter of using markup to structure your documents, and then letting CSS handle the display. That doesn't mean you can't use sticky footer techniques (like the one Paul O'Brien uses on SitePoint), Gilder/Levin image substitution techniques, or even advanced floating methods that literally rearrange the content so that you have floats on one part of the page floating underneath content on another part of the page even though there's another content block (or three) in between them.
And yes, I am aware of issues that plague even the most advanced designs; and how sometimes you have to use hacks to compensate for the failures of a browser (not just IE, but Firefox, Opera, and Safari/Chrome as well) to render things properly. (Don't believe me about Firefox? Look up Bugzilla 915 one of these days.)
But every design has its limits. Try pushing at the edges of HTML, and it gets painful, fast. On one project I audited, we were spending 75% of our coding time on browser workarounds.
Given that I've been doing this since 2002, I should know that every design has its limits; it's a limitation of the medium, not the languages used. As I tell everyone, HTML is for structure, CSS is for presentation, and client-side scripting is for behavior. While there is overlap between the three (as there should be with any healthy symbiotic relationship), they do have their own jobs and when used properly, they can achieve results that would otherwise be impossible with HTML/CSS/JavaScript.
But I'm one of those people who debugs as he goes along in all browsers - first with the HTML to ensure that the markup is structurally sound, then the CSS to ensure that the appearance is practically the same in all browsers made in this century (I'm a user-centric developer who prefers to put the people who will use the Web site first, rather than a designer's ego - but that doesn't mean designs can't look great while working well), and finally the scripting (script by script) to make sure that nothing's broken there either. Taking that kind of approach allows me to reduce the time spent debugging by nearly 95%. I've also found that most of the problems I have (and this isn't true for everyone) will be in the HTML itself, and that by modifying the markup slightly I can get it to work in all browsers, rather than piling on hack after hack after hack that I have to check again and again whenever a new browser, browser version or layout engine is released.
Oh, as for pushing at the limits of HTML? There really aren't any limits if you use it as a structural markup language because of the rules in place. The real limits to be pushed are with CSS and JavaScript - that's where the real magic is.
Switching to a RIA was a huge time-saver. At the edges of user interface design, HTML compatibility is thoroughly broken.
At which point I would dare say you're not creating a Web site, but an application. Two completely different environments (with their own sets of rules) co-existing in the same medium. (As someone who once had to make a Web site look 100% identical to a Flex app in all browsers, I should know.)
However, your instinct that the simplest designs are usually the best is spot-on. This is exactly kind of back-to-the-basics thinking that is behind REST, Atom, JSON, and other web-centric techniques.
As I've said before, even rich graphics intensive designs can be done using POSH (Plain Old Semantic HTML). Yeah, you may need a few container hooks, but given that multiple backgrounds and other CSS3 properties aren't properly implemented in all browsers yet, I can live with it for now. (Though I don't know how much more I can take - I want my CSS3 fix now, damnit!)