Esatto, un puntatore e' un indirizzo di memoria, e 0 e' un plausibilmente valido indirizzo di memoria, ma POICHE' all'indirizzo 0 c'e' la rom, non ci puoi andare a scrivere, e quindi, per convenzione, viene usato come valore SPECIALE per indicare che il puntatore non punta a nulla.
Nessunto ti impedisce di usare un'altro valore, ad esempio 0xFFFFFFFFFFFFFFFF, cioe' l'altro estremo della memoria accessibile da un processo (per i 64bit, 2^64-1, per i 32bit, 2^32-1).
E poiche' il tuo pc di sicuro non ha installata tutta quella ram, sei certo che il tuo puntatore NON PUNTA ad una cella di memoria valida.
Quindi, in definitiva, non e' vero che non punta a nulla! Punta alla cella di memoria con indirizzo 0!
In certi software si sfrutta il fatto che non puoi andare a scrivere nei primi 65536 byte e quindi si utilizza il puntatore con questi valori per fare altro.
Infine se tu usi il puntatore per scandire la lista, BANALMENTE ti tieni una copia del puntatore alla TESTA della lista