Além disso que foi dito acima, você deve atentar para a assinatura da função a função exibeTitulo é diferente da exibeParagrafo.
Para chamar a função exibeTítulo você usou a linha:
exibeTitulo("Bem-vindos");
Quando ela for chamada ela vai chamar a função exibeTitulo.
function exibeTitulo(titulo) {
document.write("<h1>" + titulo + "</h1>");
pulaLinha();
}
A função exibeTítulo requer um parâmetro que é justamente o título que vamos envolver entre as tags h1.
Para chamar a função exibeParagrafo você usou:
exibeParagrafo("Este é um simples programa");
Como o colega disse a ordem de chamada influencia uma vez que as duas funções fazem algo semelhante envolver um texto entre tags, uma em um h1 e outra em p.
Não é o que é passado por parâmetro que determina se algo vai aparecer na primeira linha, e sim a ordem que a função foi chamada eu poderia fazer também o seguinte:
<meta charset="UTF-8">
<script>
function pulaLinha() {
document.write("<br>");
}
function exibeTitulo(titulo,paragrafo) {
document.write("<h1>" + titulo + "</h1>");
pulaLinha();
}
function exibeParagrafo(paragrafo) {
document.write("<p>" + paragrafo + "</p>");
pulaLinha();
}
// pede para alguém ler daqui em diante e veja se ele entende o que esta sendo feito
exibeParagrafo("Bem-vindos");
exibeTitulo("Este é um simples programa");
</script>
Troquei o parâmetro do paragrafo pelo parâmetro do título, agora visualmente as funções não fazem sentido porque eu troquei as assinaturas das funções.Ao invés de chamar a função que exibe parágrafos e passar o parâmetro "Este é um simples programa", eu passei "Bem-vindos" que era o parametro de exibeTitulo. Esses erros e questões são muito comuns quando estamos iniciando nosso aprendizado com funções. Então antes de usar a função eu preciso atentar pra qual é o nome da função(assinatura), que parâmetros ela requer que sejam passados, o que ela faz e o que ela retorna, se é que retorna.
Espero ter ajudado e bons estudos.