Olá, Tiago!
1 - Essa aqui é exatamente o que o André comentou! Ele pega o canto superior esquerdo para centralizar o nosso elemento. Mas para ficar certinho na página, precisamos que o centro do nosso elemento esteja no centro da página e não o canto dele!
2 - Ele não centraliza o elemento. left: 50%; top: 50%;
fala que o canto superior esquerdo tem que estar no centro da página e right: 50%; bottom: 50%
que o canto inferior direto tem que estar no centro da página. Ambos "centralizam", mas colocam a ponta do elemento no centro da página e não o centro do elemento.
3 - Não sei se entendi a pergunta muito bem. Translate usa o ponto inicial do elemento (onde o elemento começa) como referência da coordenada. Então, se quisermos que o nosso elemento volte na página (esquerda ou pra cima), precisamos usar o translate negativo. Poderiamos usar o translate(50%, 50%)
se tivéssemos usado right: 50%; bottom: 50%
. Porque aí queremos que o elemento vá pra frente (baixo e direita).
Antes de responder a quarta, dá uma olhada em como fica sem o translate, apenas com top: 50%; left: 50%
e com o right: 50%; left: 50%
: https://codepen.io/juunegreiros/pen/wbXNwq
Acontece que, para chegarmos no quadrado verde centralizado, precisamos fazer com que um volte e um vá pra frente, certo? Para fazer esses movimentos, podemos usar o translate, mas não é o único jeito! Você poderia, por exemplo, calcular certinho na mão quanto precisa voltar ou andar com o quadrado pra que ele fique centralizado e aí adicionar calc(50% - valorcalculado) ou adicionar esse valor como margem negativa.
Espero ter ajudado!
Abraços