Apologies for necroing my own thread, but I figure it is better to keep context rather than starting over.
I have been doing more console app-type programming in the time since I posted this issue, so it hasn't been on the front burner for a bit. I also figured that it might have gotten solved by now, but apparently it still is a problem which plagues my LCL GUI applications. It is worse as ever.. seems like every form in Lazarus 1.2.2 (which I am using now) as well as the ones I make has this issue, and it happens fairly immediately when I just move the mouse pointer over controls in the window.
I have been researching some of the LCL source code (specifically win32callback.inc, as mentioned by Martin), but it appears I need to study the entire bottom end of the LCL win32 platform-specific codebase to see if I can narrow down the issue. I think Martin was on the right track with it likely being related to an edge case in the double-buffering, as that is what it looks like. It almost seems like it is either accidentally using dirty buffers, or not passing the correct ones up and down the component event chain.
I will try to do the message debugging as suggested in the next week and reply back with the results as soon as I am able.
Again, apologies for letting it hang out here so long; realities of RL projects and life situations sometimes get in the way of the best intentions. :-/ Regardless, I REALLY want to find and fix this bug -- it has been a plague for me for a long time.