clear () impl no LinkedList do Java

Receio que seja uma pergunta realmente estúpida, mas aqui vai:

Por que o método clear na implementação padrão LinkedList do Java se preocupa em percorrer a lista e soltar todos os nós? Por que não apenas soltar o cabeçalho e deixar o restante da lista conectado - o GC o conseguirá mesmo assim, não?

Aqui está o método:

/**
 * Removes all of the elements from this list.
 */
public void clear() {
    Entry<E> e = header.next;
    while (e != header) {
        Entry<E> next = e.next;
        e.next = e.previous = null;
        e.element = null;
        e = next;
    }
    header.next = header.previous = header;
    size = 0;
modCount++;
}

Por que andar? Por que não pular paraheader.next = header.previous = header;?

Melhor que posso imaginar é que ajuda o GC ...? Esse linkhttp: //java.sun.com/docs/books/performance/1st_edition/html/JPAppGC.fm.html#99744 meio que sugere isso.

TIA ...