It is driver and card specific to be sure, but in general OpenGL immediate commands to nothing but add data to an internal buffer. When that buffer is full, or when there's a need to flush it, then it is transferred up to the card and rendered in one shot. That rendering happens in parallel with your code anyway, so don't worry about it.
For the really big rendering performance boosts, you want to use display lists.
For the really big rendering performance boosts, you want to use display lists.