ウィンドウプロシージャ自身から UpdateWindow() を呼んだときの挙動ってどうなるんですか?
たとえば、WM_KEYDOWN が来たら UpdateWindow() した場合は

WM_KEYDOWN が来る
↓
UpdateWindow() を呼ぶ (A)
↓
WM_PAINT を引数としてウィンドウプロシージャが呼ばれる
↓
WM_PAINT を処理する
↓
WM_KEYDOWN の (A) へ制御が戻る

という感じになるんでしょうか?