DelphiでWinRTを使う場合System.Win.WinRTをusesに含めることでinitialization時にRoInitialize()を実行します。この場合、RoInitialize(RO_INIT_MULTITHREADED)でイニシャライズされます。この処理はInitProcで処理されます。
仕組みは、Winapi.ActiveXのCoInitialize()と同じです。ActiveXの場合System.Win.ComObjのイニシャライズにCoInitialize(nil)が入っていますね。
RoUninitialize()に関してもSystem.Win.WinRTのfinalizationに入っています。
RoInitialize(RO_INIT_MULTITHREADED)はInitProcに入っているので、当然ですがコンソールアプリなどを作った場合InitProcに設定した関数は実行されません。従ってコンソールアプリの場合、RoInitialize()とRoUninitialize()をbegin〜end.内に書くことが必要です。この場合RoInitialize()はRO_INIT_MULTITHREADEDでなくともRO_INIT_SINGLETHREADEDを指定することもできます。RoInitialize()が実行されていない場合、EWinRTExceptionになります。