Эта штука, винапишная InvalidateRect используется только в одном месте - в реализации Windows.dir.Select.

А окно Windows.Window использует платформо-независимые средства Views.UpdateRoot и Views.RestoreRoot. Естьописаниеэтого дела, но кое-чего не хватает.

P.S. Да, похоже, что в w.Restore передаётся нужная область, а перерисовка инициируется как для верхнего окна, так и для нижнего.