Yes, the whole idea behind al_flip_display is that each time you call it, it draws the buffer which is unseen. So there are two backbuffers. The word flip means 'turn over' so think of the bitmap which gets drawn to the screen as having two sides.
Drawing is always to the side not seen. al_flip_display() turns it over so the unseen side is now seen.
I think the whole idea behind it is that the bitmap is completely drawn when it appears on the screen. It's called page flipping.
Otherwise the draws would happen while the screen is being traced out and so frames would get mixed up.
If someone else could correct anything I've said or clarify, that'd be good.