*This comment is slightly orthogonal to this discussion, but I assume that this is (in part) related to the hand tool.*
In that case, wouldn't it be enough to add a preference (e.g. `enableHandToolOnLoad` with `false` as default) and then something like:
```
if (prefs.get('enableHandToolOnLoad') {
  // Code to enable the hand tool...
} 
```
around line: https://github.com/mozilla/pdf.js/blob/master/web/viewer.js#L898.
A similar kind of implementation should work well in both #3723 and #2709.

I think that one advantage of accessing the preferences mainly in `viewer.js`, is that it gives you better a overview of the different preferences. (Instead of having to hunt for them in different files.)