Olá, Bruno, como vai?
Seu código cumpre bem a proposta e apresenta uma boa organização. A função que calcula o IMC está clara e o fluxo principal do programa funciona sem problemas, conduzindo o usuário até o resultado final de forma natural.
Há apenas um ponto que vale ajustar: na verificação if peso and altura > 0, apenas a altura está sendo comparada corretamente. O Python interpreta essa expressão como if peso and (altura > 0), o que permite que valores não positivos para o peso passem sem bloqueio. Uma forma mais adequada seria usar if peso > 0 and altura > 0. Com isso, você garante que ambos os valores sejam positivos antes de seguir.
Continue enviando seus exercícios, pois isso ajuda bastante no aprendizado. O fórum está à disposição.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!