This, to me, makes me ask what the purpose of a feed even is. If it's to deliver data then RSS, Atom, JSON, or YAML shouldn't make any different at all. But if it's to deliver data and markup... now we're making decisions a client could override at best or result in unreadable/a11y unfriendly content at worst. Maybe it's just me but I've never considered the feed as a place to be putting markup but even if we want to go that route then RSS's <![CDATA[ ... ]]> addresses this. What am I missing?
CDATA is purely a convenient way of encoding character data, of avoiding needing to escape <, & and > all the time. It doesn’t change the semantics at all, and if any client does vary the semantics based on this, it is wrong to do so.
RSS doesn’t say what format any of its content is in. You have to guess if it’s plain text or HTML. This can easily go wrong. The result is that you can’t trust the handling of characters like <, & and > in titles or in supposedly-plain-text descriptions in RSS feeds.
Markup's part of the data. Particularly in chrismorgan's example, where it's semantic content.
As for CDATA, I think you're right that it'd work in this case (assuming that client apps cope with it there, but if the Atom equivalent works then presumably it should).
I suspect that what we're looking at here is software which is poorly generating its RSS. Probably Wordpress, since I'm at least fairly confident that it doesn't put CDATA in its item titles regardless of their content.