I was using OSMAnd the other day. Wanted to change a setting that I knew exists, since I looked through them all at one point (don't remember which one off hand, sorry). Spent 2 or 3 minutes looking for it before I ran out of time and gave up. Not the first time this has happened (second or third, I think).
On the developer side, too many interrelated settings can increase the complexity of the code, making it less maintainable.
My favorite compromise is to use settings for the most common functionality tweaks, and then add script hooks to allow extensive customization of behavior. The Android app Simpletask[1] does a great job of this, imo. (There are many places where it could use polish, but it nails the overall approach).
On the developer side, too many interrelated settings can increase the complexity of the code, making it less maintainable.
My favorite compromise is to use settings for the most common functionality tweaks, and then add script hooks to allow extensive customization of behavior. The Android app Simpletask[1] does a great job of this, imo. (There are many places where it could use polish, but it nails the overall approach).
[1]: https://github.com/mpcjanssen/simpletask-android