For rendering I have a current GL context associated with a window. In the case where the application renders multiple scenes (for example using accumulation or different viewports) I believe it is ok to reuse the same context.
My question is, why should I use multiple GL contexts? I read in the ARB_framebuffer_object extension spec that calls to MakeCurrent can be expensive, and in the case the ARB_framebuffer_object extension is present I can render on a generic buffer without using MakeCurrent.
Apparently the only reason to use multiple GL context is to avoid to setup context state (pixel store, transfer, point size, polygon stipple...) or to have available multiple render buffers configuration (one context with accumulation, another without). How should I decide when it is better to use an alternative context instead of setting context state?