A major difference however is that Optimus switches based on a software list, whereas OSX switches based on APIs used. And never switches back until the application(s) which triggered the switch is closed.
This has the unfortunate effect that some software trigger the switch even though they're just using some nice transitions/animations (Twitter/OSX, Sparrow and Reeder all trigger the discrete GPU for instance), because these are flagged as switchers. And of course the discrete GPU burns more power than the IGP.
gfx provides two services:
* Tell the user whether he's on discrete, and which application(s) triggered the switching
* Allow users to force things one way or an other (and setup different configurations depending on whether using battery or AC). While this is an advanced feature and can lead to weird results (MBPs don't support a second screen via the IGP for instance, so nothing will happen and if you try to switch entirely you'll just have a black screen. And applications which actually need the discrete GPU will freeze or crash) it's quite useful.
FWIW one of the major issue is that Flash can trigger the switch (I've never investigated too much, but I guess one or two precise functions use flagged OSX APIs), and in that case to switch back without gfx you have to ensure the relevant tab is closed and restart your browser.