Dei uma analisada melhor no seu código. Tem vários motivos pra ele não ter funcionado, mas vou tentar explorar o principal deles.
Você está tentando 'pegar' um elemento com a tag <button>
e aí sim definir um comportamento pra ele.
Acontece que a função 'document.querySelector()' vai varrer o documento inteiro e vai selecionar o primeiro elemento que encontrar. Dessa forma, não importa quantas vezes você vai dar esse comando, ele sempre vai pegar o primeiro.
A solução é você colocar uma coisa que faça esses dois botoes únicos, que no caso é o atributo 'id'. Se eu fosse eu iria ler um pouco sobre esse atributo pra conseguir entender, mas vou tentar explicar o que é relevante pra esse problema.
ex.:
<button id="botao-calcular-imc">Calcule o seu IMC</button>
<button id="botao-dar-chute">Dê um chute</button>
O atributo 'id' deve ser único e não devem existir em uma mesma página, dois elementos com o mesmo 'id'. Logo, é possível eu referenciar eles pelo 'id'.
ex.:
const btnCalcularImc = document.querySelector('button#botao-calcular-imc')
btnCalcularImc.onclick = calculaImcUsuario
const btnDarChute = document.querySelector('button#botao-dar-chute')
btnDarChute.onclick = verificaNumeros
Para você poder testar, eu arrumei seu codigo, peguei só o necessario para poder demonstrar isso.
<meta charset="UTF-8">
<button id="botao-calcular-imc">Calcule o seu IMC</button>
<button id="botao-dar-chute">Dê um chute</button>
<script>
function calculaImcUsuario() {
alert('Calcula IMC')
}
function verificaNumeros() {
alert('Verifica Numeros')
}
const btnCalcularImc = document.querySelector('button#botao-calcular-imc')
btnCalcularImc.onclick = calculaImcUsuario
const btnDarChute = document.querySelector('button#botao-dar-chute')
btnDarChute.onclick = verificaNumeros
</script>
Me diz aí o que você achou...
Enfim, espero ter ajudado. Bons estudos!