<!not_tag is is not escape the first bracket?

Is there any description why the first bracket is not escaped if it follows a ? or ! ?

<!not_a_tag
<?not_a_tag
<![img](not_image_because_first_bracket?)

All above code example is invisible because first bracket is not escaped. However, if it is ascii character after bracket, it is escaped, like <invalid_tag. Or they are not at the beginning of line.

<?php

<!DOCTYPE

those are start of directives,

But they don’t have right bracket >?

http://talk.commonmark.org/t/why-allow-incomplete-html-block-tags/1006

They can be multiline and so on.

That’s not markdown task to guarantee correct html output. So, no needs to overcomplicate things.