I've created a way to create g-code for 3D surfaces in AutoCAD. Thanks to Jon for asking about this and making me think about it.
I wrote a macro to create 3D polylines on the surface of a mesh. Model your surfaces in AutoCAD using the surface commands (revsurf, tabsurf, rulesurf, edgesurf), and then run the macro to create the 3D polylines. Then run the g-code macro, and you're ready to go!
Download the mesh macro from here. http://www.cnczone.com/forums/showthread.php?t=12191 (Convert 3D mesh to 3D polylines)
One problem, though. There isn't any compensation for the tool size. On flatter surfaces it shouldn't be too bad. On steep surfaces your part will end up a bit smaller. You can try to compensate a little when creating the mesh, although it might be a bit difficult for some parts.
Also, be aware that undercut surfaces will be cut right through.
Even with the limitations, I think this is way cool.