Including the pwdb_public.h header in userhelper.c lets it #define getlogin() to pwdb_posix_getlogin() (and similar things with getpw* and getgr*), which breaks that wonderful "can shut down as non-root user" function that showed up in 6.0, but hasn't gone away in Rawhide.
pwdb_public.h has always, since the first version, been included in userhelper.c... Furthermore, I just tested shutdown -r now as a normal user and it worked fine. So something else is wrong, or there was some transient bug in an earlier RawHide that is now fixed.
As pointed out by Nalin in private email, *using hesiod or ldap or other authentication services that pam supports but pwdb does not,* the wrapper functions break. pwdb will be changed not to define those functions, and we'll rebuild usermode, and then things should work correctly. So this is really a bug in pwdb, but we'll keep it filed against usermode because usermode needs to be rebuilt after pwdb is changed before the problem goes away. In the long term, pwdb is just going to disappear. Improvements in nss have rendered it redundant.
This will be fixed in usermode-1.12 and later, which will appear in the next RawHide and in Red Hat Linux 6.1.