The difference between the two cases seems to be this:
1. when my home directory is *not* mounted:
gnome-session[]: DEBUG(+): GsmDBusClient: obj_path=/org/freedesktop/DBus
interface=org.freedesktop.DBus method=NameOwnerChanged
gnome-session[]: DEBUG(+): GsmDBusClient:
obj_path=/org/gnome/SessionManager/Presence
interface=org.freedesktop.DBus.Properties method=GetAll
gnome-session[]: DEBUG(+): Detected that screensaver has appeared on the bus
gnome-session[]: DEBUG(+): GsmDBusClient: obj_path=/org/freedesktop/DBus
interface=org.freedesktop.DBus method=NameOwnerChanged
gnome-session[]: DEBUG(+): GsmXsmpServer: accept_ice_connection()
gnome-session[]: DEBUG(+): GsmXsmpServer: auth_ice_connection()
gnome-session[]: DEBUG(+): GsmXSMPClient: Setting up new connection
gnome-session[]: DEBUG(+): GsmXSMPClient: New client '0xaf08b0 []'
And the login screen is displayed
2. When my home directory is mounted:
gnome-session[]: DEBUG(+): GsmDBusClient: obj_path=/org/freedesktop/DBus
interface=org.freedesktop.DBus method=NameOwnerChanged
JS ERROR: !!! Exception was: Gio.IOErrorEnum: Permission denied
JS ERROR: !!! message = '"Permission denied"'
JS ERROR: !!! fileName = '"/usr/share/gnome-shell/js/misc/fileUtils.js"'
JS ERROR: !!! lineNumber = '13'
JS ERROR: !!! stack = '"0 anonymous("res" = [object GObject_Object],
"obj" = [object GObject_Object])@/usr/share/gnome-shell/js/misc/fileUtils.js:13
"'
And no login screen is displayed.
I'd guess that gdm3 is perplexed that, even though running as root, it
can't access files in my home directory.
(Spelling checked doesn't like GsmDbusClient, proposes as replacements:
Aguascalientes, Masculinity, Musclebound).