O comportamento é totalmente especificado e em conformidade com os padrões, conforme definido pela especificação CommonMark § 4.6 — Blocos HTML.
A regra principal é o tipo de bloco HTML 6. A especificação CommonMark lista explicitamente div (junto com p, blockquote, table, h1–h6, ul, ol, li, hr, etc.) como uma tag de nível de bloco. Quando o analisador encontra uma linha começando com uma dessas tags, ele abre um bloco HTML com esta condição de término:
Condição de término: a linha é seguida por uma linha em branco.
Seus outros exemplos são elementos inline e se comportam de maneira diferente.