Needless to say, I spent my development time today refactoring my GUI components. They used to be a sort of special case object similar to the DXUT library. Now I have changed them to be integrated as objects in the scene graph, so that they can be sorted and culled just like any other object in my normal 3D scene graph.
At first thought it doesn't make sense to put 2D components and 3D objects together, but after considering that the scene graph just holds objects that may need to be rendered this frame it started to clear up. In fact, by implementing these objects as scene graph objects it will make it extremely easy to switch to a fully 3D GUI and at the same time retain the functionality of the 2D version.
All that, plus I get the performance improvements from grouping things together. GUI refactoring is not the most exciting, but it really seems to have helped out quite a bit.