The most annoying issue with Joomla!, despite the admirable efforts of many people involved with the project, is its tendancy to output crappy HTML. Even still, at least one of the default themes uses tables for layout, and last time I checked the RSS feeds that it spat out wouldn’t validate.
But the biggest problem is not with the core. A little bit of hacking can get around that. The bigger problem is the poorly coded extensions (plugins, components, modules). Running a website off an open-source CMS means you almost invariably are going to need to rely on 3rd party extensions, and there’s nothing inherently wrong with that.
What’s wrong is the shoddy state of Joomla’s extension landscape. Credit to the extension authors is of course due more than blame, as they’re working (generally) for free, out of goodwill. But having to re-work over the HTML generated by pretty much each and every extension–whether it’s removing tables used for layout, getting rid of deprecated elements and attributes, or just fixing plain old errors–gets tedious quickly. People should know better than to just throw
<style> tags into the middle of a document. I shouldn’t be seeing
<td align="center"> anywere.