According to the HTML specification, CDATA sections and processing instructions are parse errors, which means that they should never occur in a valid HTML document. CommonMark should not recognize them, or (in the case of CDATA sections) treat the content as verbatim text to be output as HTML. I prefer the former.
That’s not totally correct, from the docs on The Go Programming Language
Strictly speaking, an HTML5 compliant tokenizer should allow CDATA if and only if tokenizing foreign content, such as MathML and SVG. However, tracking foreign-contentness is difficult to do purely in the tokenizer, as opposed to the parser, due to HTML integration points: an
I am using processing instructions embedded in my markdown documents extensively for various functionality (see GitHub - mkdoc/mkpi: Processing instruction tool) and object strongly to support for parsing processing instructions being removed.