Olá Ricardo!
Quando colocamos parênteses na função estamos invocando ela, chamando ela para ser executada. Quando você faz assim:
tchau();
Você está pedindo para o navegador executar todas as instruções dentro da função. Faça um teste. Vá no console do navegador e digita tchau(). Ele executa a função.
Agora, no código abaixo:
button.onclick = tchau;
Não estamos executando a função, mas sim guardando todas as suas instruções "dentro" do botão, e essas instruções serão executadas somente no clique do botão. O tchau sem parênteses contém as instruções da função e não a execução da mesma, entendeu a diferença? Faça o teste. Vá no console e digite tchau; para ver o que ele te mostra. Ele mostra o que está dentro da função, o que ela contém, o que fica guardado "dentro" do botão e não executa a função como acontece quando você digitatchau();.
Abraços e sucesso nos estudos!