Todas as faces tem que ser transladadas para poder criar o efeito de 3D. Só rotate não ia conseguir criar o cubo corretamente.
Me parece que o translate tá fazendo o papel do perspective nesse caso.
As vezes o professor muda um pouco o código em relação ao que está na aula. Como disse esse curso tem problemas e estamos fazendo revisão.
Se não definirmos o height: 100% não vai preencher toda tela.
O perspective-origin serve para dar a pespesctiva do paralaxe que é tipo um 3D que está na frente da tela. Se tivessemos monitor 3D e oculos 3D e se o HTML5 desse suporte nativamente veriamos as palavras saltando da tela.
O preserve-3D está em dois elementos porque esses dois elementos precisam desse efeito para funcionar como o programador fez a página. O preserve-3D indica que as crianças desse elemento devem ser posicionadas no espaço 3D.
Espero ter respondido as suas perguntas. Se algo não ficou claro pergunte de novo com outras palavras que vou me esforçar para responder da melhor maneira possível.