A parte lo sfogo ...
la domanda è MOLTO intrigante e quindi la risposta non può essere che interessante!

Io dico la mia.

Impostando una variabile a Nothing non è come dire "pulisci la memoria utilizzata", ma bensì "sgancia al variabile da quella parte della memoria". In poche parole elimina il link che dalla variabile porta al primo bit della porzione di memoria occupata dall'oggetto (così è un po' semplificato ma concettualmente ci siamo).
Per pulire la memoria c'è il i dispose che fa terra bruciata.

Una volta che la memoria allocata supera una certa soglia (prima di arrivare allo swap) windows (e credo tutti i SO) esegue funzioni per trovare bit "vaganti" ( = non riferiti ad un processo attivo), a quel punto li sovrascrive. Il fatto di impostare tutti gli oggetti a Nothing alla fine di una funzione è importante perchè capita che anche processi teoricamente finiti risultino latenti come provessi sttivi (soprattutto precessi in thread).

Per quanto riguarda l'iterazione "for each programmatore in HTML.it"...
arrivato al Next il puntatore che collega la variabile "programmatore" all'oggetto "Vendaval" viene sostituito con uno che punta all'oggetto "Andrea.Medici". In realtà il passaggio per Nothing non ha uno scopo, comunque il primo puntatore non esiste più!!!


Insomma, credo tu abbia ragione...
sono stato un po' prolisso per spiegare la motivazione della risposta finale.
Mi piacerebbe aver conferme o altri pareri perchè sono un fan dell'associazione "salviamo la memoria di sistema"

Ciao