Když něco vytvoříš v OnCreate, tak to obvykle chceš uvolnit v OnDestroy. V OnClose bych to nedělal, protože zavřený formulář je možné opakovaně zobrazit - někdy se to hodí, protože se zobrazí rychleji, než když se musí nejdřív vytvořit.
tDictionary se o uvolnění nepostará, ale tObjectDictionary to umí - při volání Create mu předáváš jako parametr, zda se má starat o život klíčů a život hodnot.