Existe uma garantia de auto-descarga stdout antes de sair? Como funciona?

Aqui está o código (válido C e C ++)

#include <stdio.h>

int main() {
    printf("asfd");
    // LINE 1
    return 0;
}

Se na linha 1 eu colocasse a expressão segfaulting, o programa iria apenas falhar sem imprimir nada (como esperado).

Mas por que o código acima está imprimindo "asdf" e não saindo sem o buffer ser liberado? O que está sob o capô e por que ele funciona como esperado?

questionAnswers(3)

yourAnswerToTheQuestion