It is certainly hard, and impossible in some cases. But not as many as you would think. Wrappers can be a problem (although not as much as they used to be). Clearfix is not a problem at all, as it does not require an element only a css mixin[1]
Still, it's very possible to be almost entirely semantic with a few minor exceptions using a css preprocessor.
[1] http://compass-style.org/reference/compass/utilities/general...