GLUT implementations should be careful to not limit the conditions
under which GLUT routines may be called. GLUT implementations are
expected to be resilient when GLUT programs call GLUT routines with
defined behavior at ``unexpected'' times. For example, a program
should be permitted to destroy the current window from within a
display callback (assuming the user does not then call GLUT routines
requiring a current window). This means after dispatching
callbacks, a GLUT implementation should be ``defensive'' about how the
program might have used manipulated GLUT state during the callback.