Earlier quoted context omitted.
Every piece of code or bit of functionality you write has a cost of ownership to your business. Every preference requires more testing to make sure that other things don't break as a result of a user changing an obscure setting. If you don't mind having to write test cases for thousands of permutations of possible settings, go ahead and let your customer change everything. A simple product, however, is far easier to…
Obviously, the simpler the product is, the easier it is to maintain. But as the product gets simpler and simpler, it becomes valuable to an ever-smaller pool of users, all of whom have differing needs. Obviously it's not as simple as "just build it simple." There's a delicate equilibrium that must be maintained.
The simpler something to use, the bigger the pool. The fewer the applicable use cases, the smaller the pool.