Howdy. I worked out what my problem was.
Using kernel mode PPPoE with a wildcarded source address ... inet 0.0.0.0 255.255.255.255 ... for some reason BIND doesn't recognize that interface even though from the boot messages the interface is up and gets its address before named starts. Explicitly telling BIND to listen on the interface doesn't help. Explicitly using the IP address in the hostname.pppoe0 file does help, e.g.: inet 1.2.3.4 255.255.255.255 Other machines can access my RRs and my virtual hosts on Apache start working. Best wishes.