Tem a ver com o formato interno do arquivo. Originalmente, os arquivos .com eram imagens de memória simples e os arquivos .exe tinham muitos cabeçalhos associados a eles. Como resultado, você não poderia renomeá-los. Conforme o tempo passou e eles tiveram que tornar as coisas compatíveis com versões anteriores, a Microsoft o alterou para que o sistema operacional examinasse o próprio arquivo para determinar o tipo de arquivo em vez da extensão. Como resultado, quando você executa o arquivo renomeado, o Windows ignora completamente a extensão. Veja os links abaixo para uma explicação mais detalhada.