O uso do método casefold não seria mais adequado do que a utilização do método upper para equiparar o case da string de entrada com o case da string da variavel palavra_chave?
if chute.casefold() == letra.casefold():
ao inves de:
if chute.upper() == letra.upper():