E por que não conseguiria? Uma função é “apenas” uma sequência de comandos que pode ser reaproveitada (resumindo bem porcamente). E dentro dela você pode ter qualquer código válido.
Mas só pra constar, sua função não faz sentido. Ela se chama sexo, recebe um parâmetro chamado masculino, mas o código dela verifica o IMC, o que é bem confuso. O parâmetro masculino não está sendo usado pra nada, e de onde vem o IMC? Ele também deveria ser um parâmetro.
Sem contar que se o IMC for exatamente 20.7 ele entra em dois if's (no abaixo do peso e no peso ideal).
Enfim, usando os mesmos valores, a ideia seria fazer algo assim:
function mostraResultado(imc) {
if (imc <= 20.7) {
mostra ("Você está abaixo do peso ideal.")
} else if (imc <= 26.4) {
mostra ("Você está no peso ideal.")
} else if (imc <= 27.8) {
mostra ("Você está um pouco acima do peso.")
} else if (imc <= 31.1) {
mostra ("Você está acima do peso.")
} else {
mostra ("Você está obeso.")
}
}
Repare que não precisa testar o mesmo valor duas vezes. Se o IMC for menor ou igual a 20,7 ele entra no primeiro if. Se não entrou nesse if é porque é maior, então não precisa testar isso de novo no else.
Depois, se for menor ou igual a 26,4 vai entrar no segundo if. Se não entrar ali é porque é maior e não precisa testar de novo no próximo e assim por diante.
Se não entrar em nenhum if é porque é maior que 31,1 e entra no último else.