Well if I try your code I see only 5. When you use Flip, I think the frontbuffer and backbuffer are swapped: what is on back will be on front and what was on front will be on back. Therefore, like you say, there should be 5 on each bank, and this is also what I see. Hmm...
By the way, also in reference to your other post: if I use
SetBuffer FrontBuffer()
in this program instead of backbuffer, and remove the flip, I see all 10 rectangles (also adding a Waitkey() at the end so you can see it, or a Delay(1000) in the loop).
I think that the SetBuffer() command is not a way to select between double buffering, or no double buffering. There are always the two buffers; with SetBuffer() you just select the buffer you are drawing to. It only actually becomes "double buffering" when you 1) choose the backbuffer to draw to and 2) use Flip to flip what you have drawn to the frontbuffer.
If you don't want double buffering you should select the frontbuffer, and NOT use flip. I think this is how it works.