Hola Iván.
La función de borrado es correcta y tomando en cuenta tu buén criterio, no dudo que el momento en que se realiza la lamada a la misma es el adecuado según los requisitos de tu aplicación.
Lo único que me animo a sugerir, es que podrías incluir la constante
FOF_ALLOWUNDO preeviendo un posible borrado accidental. De ese modo se envian a la papelera de reciclaje las carpetas/archivos eliminados y dá la posibilidad de revertir la acción. Pero bién podrías no desear eso o ya haberlo previsto de otro modo...
Código Delphi
[-]
...
FS.fFlags:= FOF_NOCONFIRMATION + FOF_ALLOWUNDO;
...
Saludos