With any remotely non-simple module dependency, the docs are not logged as being dependent on the necessary files. This means the user needs to manually touch each file to get persuade the docs to update.
This adds a config option, dependencies, which is a dict from the target rst file to a dep list, which is then checked for changes during builds.
The problem with the dependencies being in conf.py is that it moves the logic away from where the dependency is actually applicable, and so one could easily end up with orphan dependencies. I initially thought about conf.py, but it seemed neater to do what I did.
I don't see the problem with specifying the dependencies at the point the module is needed (apart from it being autodoc specific).
Perhaps another way to do it is to add a dictionary of modules to dependencies in conf.py, which extensions can look up as necessary...?