I don't think it's useful to separate the boolean state variables from the non-boolean variables, regardless of the underlying GL API. It's much simpler and much more intuitive (to me) to have just one set_state function that takes care of all related state variables, and simultaneously provides access to common presets.