In /etc/init.d/devfs, mqueue, devpts and tmpfs are mounted. The depend() function of this file has a line: use dev-mount There is no init script called dev-mount, but there is one called udev-mount. In udev-mount, /dev is mounted. If you're unlucky (which I apparently am), udev-mount runs after devfs and these filesystems are masked by the new /dev tmpfs mount, and most notably you cannot open new terminal windows in X. Changing the line to use udev-mount most likely works, but I haven't rebooted to test it.
udev-mount has this line in depend(): provide dev-mount Do you have udev-mount in the sysinit runlevel, as the udev-init-script ebuild warns?
Oops, then it's my bad. I have an older kernel so I also kept an older udev that's no longer in tree. I didn't know about the provide keyword. Thanks.