I don't think one perfect solution exists, but I also don't think pushing a lot of decisions to the user is a good idea. The fallacy is thinking the goal is to provide a solution for all users. Stake out a position make choices, be the best product for the users that you work for, and let someone else cater to the other users.
I don't personally like Windows Phone, but I think it is a great platform that has a vision and has made an interesting set of choices. It simply does not hit my specific needs.
On the other hand I think Android is a just a confusing mess to use, and I say this as someone who is fairly familiar with its innards and has been hired to write Android firmware code.