I have been using Gnome 3 for a few months now, and with the extension tools available it can be made almost useable.
The two things that really need to change are the dynamic workspaces and the launcher.
The idea of dynamic workspaces is great for the casual user, but for the more experienced user we would like a set of named static workspaces. I have been able to kludge this by having a terminal session on each workspace - and making sure I never close them. This keeps the workspaces alive and fixed. GConf still has the ability to name workspaces so I use the workspace menu to switch when using the mouse (I am a developer, but I use the mouse a LOT).
The idea of always jumping to the running program when you hit a launcher is really annoying. I can see that it might be useful for some large programs, like Eclipse, but for terminal sessions or a calculator I want to stay on the current workspace and open a new instance. This needs to be made into a configuable option since different users will have different requirements for this.
Those two changes and it would be a viable DE.