I write:
Maybe MDB_NOLOCK should have kept the lockfile and reader table, and just omitted the mutexes/semaphores that synchronize transactions.
Duh, nevermind. As Howard reminded me, that'd require readers to have write access to the lockfile, which was the problem which started all this.