Gente, segundo a interpretação da questão, foi apontando na regra do negócio que as pessoas com uma quantidade de milhas inferior a 5.000 não recebem desconto. Inferior é menor que 5000, ou seja, 4999, 4998... Na situação apontada por relatos de usuários, havia dificuldade em utilizar o desconto referente a 5.000 milhas, pois não ocorre nenhum desconto. Nenhuma das alternativas do exercício corrige essa situação, pois onde inferior a 5000 seria "quantidadeMilhas >= 5000"(com o igual).
Entao fiquei com essa dúvida se realmente só a realocação do "if" dentro do "else" resolveria o problema para funcionalidade correta.
Fiz um teste com colocação de alert para verificação em um cenário onde o usuário com a quantidade exata de 5000 milhas e os excedentes a 30000 pudesse utilizar o desconto de direto.
let porcentagemDesconto = 0;
let quantidadeMilhas = prompt('Digite aqui suas Milhas para Saber sua porcentegem de desconto!')
if(quantidadeMilhas >= 30000){
porcentagemDesconto = porcentagemDesconto + 20;
alert('Sua porcentagem de desconto é: '+porcentagemDesconto);
} else {
if(quantidadeMilhas >= 5000){
porcentagemDesconto = porcentagemDesconto + 10;
alert('Sua porcentagem de desconto é: '+porcentagemDesconto);
}
else {alert('Sua porcentagem de desconto é: '+porcentagemDesconto);}
}