nil es una constante que representa un puntero nulo (cero). Una variable que contiene un objeto no es mas que un puntero a la posicion de memoria donde esta guardado el objeto. Si tu a una variable que hace referencia a un objeto le asignas nil, simplemente esa variable deja de apuntar al objeto pero el objeto sigue ahi en memoria.
Por ejemplo:
Código Delphi
[-]
var
Objeto: TMiObjeto;
begin
Objeto:= TMiObjeto.Create;
Objeto.Free;
Objeto:= TMiObjeto.Create;
Objeto:= nil;
end;
¿Algo mas?