I want to reply to this point because it seems that many people don't
like the actual solution.
There are (and there will be) two main applications, GWorkspace and
Desktop.
In the future, Desktop will be integrated in the window manager and
this means that it will use X stuff directly, not allowing anymore any
kind of unification with GW.
Last week I've made some experiments with WindowMaker and I've got it
to work as a GNUstep application (the X events are intercepted by the
run loop of the app and then passed to the Window Maker function);
after this I've tried to add to WMaker.app part of the sources of
Desktop and I've got the Desktop window and the Dock (my dock) on all
the WindowMaker workspaces. So, I think that this is the right way to
go (using WindowManager or something else).
In this perspective, the existence of all the helper apps is easy
understandable:
both the apps needs file operations.
both the apps needs an Inspector.
both the apps needs a Finder and will use its File Annotations and
Live Search Folders.
both the apps use fswatcher, thumbnailer, etc...