I have no problem with the free-to-play business model until it impinges on the honesty of a game's design. Games are often modeled around a player intent. For example, the player intent in many games is to get as high a score as possible. The player improves at the game and their scores grow. Every improvement to a personal best is a reward. This forms the reward loop that keeps the player coming back for more, enabling exploration of the game's systems by combatting the fear of the unknown. However, in a free-to-play game such as Temple Run there is the opportunity to increase your score by paying money. After you die you can essentially pay money to continue playing and increasing your score.
This model forces the player into the corner of having to form implicit rules for themselves. If the player purely followed the dictum of the core reward loop, they would spend money every round to make their score as high as possible. Since this is not financially feasible/sane, the player has to decide when they are going to spend money. Whenever they are not spending money they are intentionally handicapping themselves. The rules players form for themselves as to when spending money is okay are the implicit rules of a free-to-play game. These rules are not enforced or acknowledged by the game. Players are essentially putting "house rules" on top of the game's systems.
I have several problems with these implicit rules. First, they muddy the design of the game by layering another set of guidelines on top of those already established by the game. This becomes a mental load on the player since it is their responsibility to manage them (either consciously or subconsciously). Second, since they are not strictly enforced by the game, the implicit rules are probably going to be broken at some point, lessening their weight. This can potentially further dissolve the driving system of the game, e.g. a player spends money once leading to a score higher than they could have achieved without paying, meaning if they ever want to have a good chance of beating that score they would have to pay money again. Third, implicit rules often mean that players are on unequal footing for any multiplayer components. Sure, your friend might have a higher Temple Run score, but is that because she bought her way there?
These problems can also affect games in more subtle ways, as was the case with Diablo 3. Having the option to buy items from other players in an auction house seems very benign on the surface. However, this means that good items must be rare within the game so there is a demand in the marketplace for good items to sell. If everyone got items that were good enough in the game there would be no reason to go to the auction house. However, this means that if you are playing without using the auction house, chances are that you won't get good drops very often. When one of the core rewards of your game is getting good gear, this breaks the game in a very significant way. Luckily Blizzard realized this and has decided to get rid of the auction house this coming March.
I don't think free-to-play is categorically a bad thing, even outside of purely cosmetic monetization models. The example of Team Fortress 2 hats is often cited as well-done cosmetic monetization, but I think their weapon/item implementation is even more interesting. Instead of letting players pay for more powerful weapons, they let players pay for weapons that cater to certain styles of play. Players are still experiencing an untainted core reward loop, but are offered different lenses through which to attain these rewards.
A lot of people think paid apps seem to be on their way out, and I'm planning on releasing my first iOS game relatively soon, so this topic has been on my mind lately. I'm confident that I can find a way to monetize the game that doesn't involve compromising the design, and that the design community will slowly overcome the stigma of in-app-purchases.
Let me know what you think on twitter.