If my module calls a function of another module, that other module should be listed as a dependency of my module.
Now my module only provides some field handlers for the Views module. On the one hand, my module is useless without the Views module. On the other hand, my module does not call any functions or methods provided by the Views module.
Should I add Views to the list of dependencies for that module? If yes, would that change if my module provides other functionality unrelated to views (like custom pages)?
Note that I used Views only as an example. The question applies to all optional modules, that define hooks.