Como tú bien has dicho el resultado final es el mismo si se hace bien.
Si dejas que el formulario destruya el elemento estás dejando esa tarea para cuando se cierre el formulario y la mayoría de las veces no es necesario esperar tanto.
Salvando ese caso, lo normal será que destruyas el objeto cuando ya no lo necesitas, de ahí que la forma que suelo utilizar es:
Código Delphi
[-]
XX.Create(nil);
try
...
...
except
XX.Free;
end;