Executando verificação de segurança...
4

O problema não é o lineheight, na verdade, como o CSS está estruturado, line-height: 0; e sobreposto e até desativado mais a frente, o problema real é que p é um elemento de bloco que não adiciona uma linha em branco, sub não pode ter elementos de bloco sem uma linha em branco, simplesmente mudando essa propriedade de p para inline, é resolvido:

.markdown-body sub > p,  .markdown-body sup > p {
  display:inline;
}

E antes que alguém venha me cancelar dizendo que eu estou falando besteira, não é a tag sub, é o css que modificou ela (normalize.css), o GitHub, Medium, Twitter, sites com Bootstrap e similares tem o mesmo problema só copiar:

Carregando publicação patrocinada...
1

Valeu pela complementação, xafiyom362 bem como por testar os artifícios em outras plataformas. Muito provável que eu deva respeitar a função das tags em vez da plataformas alterarem o CSS como descobriu. Mesmo assim, caso alterem, as receitas que deixaram aqui serão úteis para os devs que entendem desses detalhes da renderização do markdown.