To je logické. HALT prostě ustřelí aplikacei a basta fidli, ani programátor nemá šanci uvolnit objekty. W9x jsou po několika takových pokusech na hubě kvůlivá uškrcení v paměti a na prostředcích. W typu NT to přežijou kapánek víckrát, ale také ne nekonečně.
Proto Application.Terminate nahodí Application.Terminated := true; aby všechny komponenty (včetně programátora ) věděli, že se to ukončuje a podle toho se zařídili. A proto se to může ukočit až v čase IDLE (když program zahálí a všechny požadavky jsou vyřízeny).