As you can see... I'm making some progress. I've corrected a number of problems with GNUstep's in window menu generation. It's now very close to what most other apps generate in GNOME.
I considered a few approaches, one was to leverage some of the code I wrote for the Windows theme to generate the menu from the menu structure and create a GtkMenu to attach to the Window... the issue with this approach was that it would have required the window to be a GtkWindow, which wasn't a good idea. The other approach I considered was to reparent the GNUstep created window into a GtkWindow which contains the GtkMenu. The issue with this was that it would have been impossible to switch back to another theme which doesn't use the GNOME widgets and GtkWindow.
The approach I settled on is a good middle ground. The changes fix a number of issues which were present in the code previously. Also, it gives more control to us regarding the look of the in-window menus.
As you can see, it's not perfect. The icon is still on the bottom left, the menu is still floating. I've made all of the changes necessary to get the GNOME theme working again. I've also refactored it so that it loads nicely from SystemPreferences, which the previous version didn't do.
Once I get the final details worked out, you should be able to run your GNUstep applications alongside GNOME applications without any problems and without them sticking out like a sore thumb.
Any comments are appreciated. I am trying to make GNUstep blend into GNOME as much as possible so that you can port your Cocoa apps to many different environments easily.