When generating RSS feeds, the RSS standard says that these translations must be done so that the content is not interpreted as XML, but rather as plain text:
'&' => '&'
'<' => '<'
'>' => '>'
And this is precisely what I do. No problem.
However, it also supports a "" syntax, described here: https://en.wikipedia.org/wiki/CDATA
Using CDATA blocks is like the first way, except that it is horribly broken: it can't contain "]]>" anywhere inside, because it ends the CDATA block!
This means that you have to make very confusing little "hacks" to be able to nest CDATA blocks, and since we are editing an RSS document with a bunch of random content, it can obviously contain "]]>" somewhere, so then you should apply an escape routine for everything you put in a "CDATA block".
So with that in mind, why would anyone ever want to use CDATA blocks instead of escaping these three special XML / RSS characters as defined by the standard? I do not understand.
The only assumption I have is that if you have tonnes of content, then the number of bytes could become large if you have a bunch of "<" stuff everywhere, compared to just a CDATA start / end tag with single characters inside …
So maybe I answered my own question right away, but is that the only reason to "save a few bytes of network traffic"? The part where you have to escape the internal CDATA end tags dissuades me from using CDATA blocks.