Por que o código .NET compila para o MSIL?

O primeiro código .NET compila para o MSIL e, em seguida, o JIT o converte para o código dependente da máquina. Alguém pode me dizer o que todos os benefícios obter por causa da compilação de 2 passos.Graças