I have discovered that the culprit is, in fact, /usr/share/gnome-session/sessions/xmonad.session or equivalent file.
Create or edit the file /usr/share/gnome-session/sessions/xmonad.session to be:
[GNOME Session]
Name=Xmonad/GNOME
RequiredComponents=gnome-settings-daemon;
RequiredProviders=windowmanager;
DefaultProvider-windowmanager=xmonad
DesktopName=Unity
The important line is the last one. DesktopName must have the value Unity, even if you do not use it.
Also, create or edit /usr/share/xsessions/gnome-xmonad.desktop to the following:
[Desktop Entry]
Name=GNOME with Xmonad
Comment=A GNOME fallback mode session using xmonad as the window manager.
Exec=gnome-session --session=xmonad
TryExec=gnome-session
Icon=
Type=Application
At login, choose GNOME with Xmonad from the session dropdown.
Everything, including themes, the desktop background and other minor things should work as expected.
Edit: if this does not seem to work, run gnome-session-properties (Startup Applications) and add gnome-settings-daemon to the list. (It's unlikely that this will work but it's worth a try.)