I think I fixed the problem. I added the RequiresMountsFor=/var to resolvconf, deleted everything below /var on the root partition, and changed /etc/resolvconf/update.d/bind9 to use /run/named instead of /var/run/named (the actual reference in named.conf.options already used /run without the /var prefix). Combined with the previous changes (establishing RequiresMountsFor=/var for bind9 and bind9-resolvconf) seems to do the trick. I started the system twice, and both times bind9 started successfully on boot.
What combination of changes are essential I don't know, though clearly at least one of the changes in the last round was. The change from /var/run to /run was inspired by internet discussion of somewhat similar problems, in which the fact that /var/run was a symlink made dependencies hard to work out. It has the added bonus of removing the dependency on /var being mounted for named.resolvers (the file created by the bind9 script for resolvconf). Of course, /run has to be mounted, but I guess that's already taken care of. The root partition's /var no longer has stuff being written to it on startup. I'm sure there are some general lessons to be learned, though I'm not sure what they are :) It's not clear to me if the presence to stuff below the root partitions /var, or the writing of files there, fooled or disabled RequiresMountsFor as you suspected, but it seems possible. I leave it to you to decide if any changes to the bind package are in order. The problem seems to require the interaction of a separately mounted /var (which I would guess is typical) and the effort to integrate resolvconf and bind9 (I think I enabled bind9-resolvconf manually). My recollection is the current package provides only general guidance about working with resolvconf, but I think specifics would be helpful. Ross