Hodgman and Matias,
Thanks a lot for the very clear and exhaustive explanations. The links you mentionned were also helpful.
To give a little bit more background: I used to get inspired a lot on the gamedev forums, I however am more in the field of simulation. There, it is of importance if something gets rendered wrongly, or if a frame gets skipped without specific reason. Interpolation between two states could work, but might lead to some unrealistic renderings too and confusion, specially when stepping generated videos later on (usually there is one frame per simulation step, which helps debugging certain set-ups). Finally, the simulation (or game logic) uses the openGL functionality, in order to generate virtual images, operate on them (e.g. image processing) and create an output. The time at which the "internal" or FBO rendering occures depends on the simulation loop and how it is programmed. So there I get another heavy restriction regarding multithreading: the rendering thread and "game logic" thread can both generate OpenGL commands, and need to switch contexts every time. In that case, locking (or rather blocking) the other thread is the only option.
Given the many constraints and limitations, I concluded that having an additional thread in charge of rendering would not give me much speed increase, but would complicate drastically the architecture.
My application uses basically one single thread (of course it also uses worker threads for specific tasks) that handles the "game logic" and the visualization. But I wanted to evaluate the benefits of spliting the task into 2 different threads, and maybe even offering the 2 alternatives.
Again thanks for the insightful replies!