Si, si poteva fare come hai detto tu...

Questo è solo un esempio, e in un codice così ovviamente quel puntatore non serve a niente se non a farti capire come funziona. Però ad esempio senza puntatori non potresti mai realizzare strutture dati come liste legate, alberi, etc. etc. etc.

Un altra cosa:

codice:
struct STRUTTURA {
   ...
   struct STRUTTURA struttura;
};
non si può fare (una struttura di un tipo non può andare dentro se stessa)

Mentre si può fare:
codice:
struct STRUTTURA {
   ...
   struct STRUTTURA *struttura;
};
puntatore a una struttura dello stesso tipo è ok...