Como complemento, o identificador você pode usar um nome mais detalhado, mais explicito. Enquanto que o alias você pode usar um nome curto, mais simples.
A fato do autor ter usado o identificador com o mesmo nome do alias não muda nada, neste caso.
O primeiro TipoCelula não é obrigatório, você pode usar a seguinte sintaxe:
typedef struct {
TipoItem Item;
TipoApontador Prox;
} TipoCelula;
Contudo, a sintaxe não está incorreta, onde o primeiro TipoCelula é um identificador e o segundo é um alias.
Leia mais em: https://pt.wikibooks.org/wiki/Programar_em_C/Estruturas
Esse placar de líderes está definido para São Paulo/GMT-03:00