It seems to me, the appropriate way to deal with a graphical interface is to use the Csound channel opcodes for two way communication between the orchestra and the user interface. In the case of a XO activity, the user interface should be constructed in python using the pyGTK modules.
A developer should think of Csound only for audio generation and processing.
I would caution against writing graphical opcodes to replace the FLTK opcodes (e.g., knobs, sliders and buttons). I do not believe GUI code should be mixed with Csound code. Control values may be sent to and received from Csound, but the UI implementation details should be left to python's domain.
I believe Victor is approaching the problem correctly. He is developing a set of python classes to facilitate working with the channel opcode communication layer.
I would also like to point out that due to system performance issues, it may be justifiable to design opcodes to extract the data necessary to drive a graphic display such as an oscilloscope or a spectral display. However, a python extension might be more appropriate though potentially more difficult to deploy.