I think I was able to answer my own question(s). This link got me curious: http://www.f-m-c.org/projects/apache/html/3_3Extending_Apache.html
I read what seemed to say that the merging of directories was done at the beginning of the handling of a request. I re-worked my debug code to output to a logfile rather than STDERR (because STDERR is lost once the child processes are created... and is therefore not useful for debugging after startup). In fact, it appears that dir_cfgs are stored by the parent process (and given to the child processes when those are created). Merging of dir_cfgs appears to happen at the beginning of a response handling. This seems to explain how .htaccess files can be read both at server startup and at the beginning of every request. It appears that my merge function works now. Dave
