Mal allgemein: Das ist glaube ich die Lebenslüge der CSS-Layout-Freunde. »Idealerweise« trifft es genau.
Naja, "Lebenslüge" ist wohl zuviel gesagt. Diese Vorgehensweise dürfte ziemlich sauberen Code hervorrufen, wenn nicht sogar den saubersten Code.
Wenn man ein komplexes Layout nach den Regeln der Kunst baut, braucht man oft sehr viele Angriffspunkte für Styles im Markup.
An dieser Stelle möchte ich bereits einhaken, denn was ist ein "komplexes Layout nach den Regeln der Kunst"? Klar ist, dass CSS einige Mängel hat, noch schlimmer wiegen die Mängel der allgemein verfügbaren Implementationen, die dazu führen, dass man nur einen Teil (sinnvoll) benutzen kann.
Das führt dazu, dass man divs und spans einfügt, die größtenteils strukturell keinen Sinn ergeben. Mit semantischem Code haben sie daher nichts zu tun, ich bezeichne sie gerne als Präsentationsgliederungen. Sie strukturieren den Inhalt nur in der Hinsicht, später im CSS adressierbar zu sein. Vor allem werden sie für ein bestimmtes Layout eingefügt, damit werden Markup und Stylesheet verschränkt, anstatt dass sie unabhängig voneinander bleiben und das Stylesheet ohne Änderung am Markup auswechselbar ist. Die vielgelobte Trennung von Textauszeichnung und Präsentationslogik ist damit Makulatur.
Alternativ könnte man sich bei dem Layout einschränken und stattdessen versuchen, jedem Client ein bestmögliches Layout zukommen zu lassen.
(der Rest)
Die Frage ist doch wohl, was einem wichtiger ist: Ein "komplexes, anspruchsvolles" Layout oder ein etwas weniger gewaltiges Layout und dafür komplett sauberes Markup.
Reden ist Silber, Schweigen ist Gold, meine Ausführungen sind Platin.