Who gets to define the options that are available? Shouldn't the developer of the software get to decide what their software does and doesn't do? You want me to spend money developing and supporting options that I would rather not build & support?
In the long term, yes - the customer decides, because it's the customer providing the money. Now, there's the whole "the customer is NOT always right, because the customer is often a clueless moron" problem, but ultimately, it's the customer's money to spend (or not spend).
There is nothing inappropriate about one vendor making choices. to continue the Apple example, they make 8 of the reasonably complete smartphones you could choose to buy. If you were forced to buy Apple's phone, that would be another matter, but you get to choose.