В WM_ERASEBKGND я вынес для примера, этого оно в WM_SIZE было, этот код хоть куда пихай (в тот же WM_NCPAINT) - результат один. Ну и вообще в SetWindowRgn третий параметр FALSE - указывает что перерисовка после изменения региона не требуется. Также, я могу в обработчике WM_ERASEBKGND ничего не перерисовывать, а просто return 0 делать - это не поможет, то бишь дело тут в другом. Ну и как видно на картинке - шлейф то только за частями, отличающимися от первоначального прямоугольного региона, а так был бы за всем окном.
Да к томуже FillRgn делается для того же региона, который установлен как регион окна

.