Or you could play a game thats 100% fun.. theres plenty enough games like that, for each genre.
There really isn't. There are very few games where you enjoy every aspect of the game equally. There are very few games where you can't think of something they could have changed to make the game more enjoyable.
The sort of argument you are making is generally made by people who have more time than money. For whatever reason, they don't seem to recognize that quite a few people have more money than time. If, for example, someone likes, say, BF:BC2, and wants to have access to all the items in the game, they could spend long hours playing the game until they leveled up and unlocked everything. But if they don't have long hours to put into the game, and they have plenty of money, why not spend a paltry amount and skip to the end? Playing the game is fun, having to unlock the weapons isn't.
Personally, I'd probably never do that, but for me, my time is less valuable than my money, because I have more spare time than money. Or, at least, the spare money I have is allocated for other things. But lots of other people approach things differently. As long as you aren't ruining the game by allowing people to buy things, I can't see any reason not to let people.