Your complaint sounds exactly like the complaint about iOS development where the writer has to pay some fee up front (for the SDK) and then sacrifice some percentage (for Apple, 30%) of the selling price before getting paid. You're claiming that Microsoft and others have been doing it all along.
Well guess what? It works. It works for both the developer and for the retailer (in this case, Microsoft.) Why, after all, should you expect Microsoft to market every one of your apps for free if all you've done is bought one copy of their SDK? Or maybe you would rather them charge you that SDK price for each and every app you create--regardless of how well or how poorly it sells. Which choice is likely to put more money in YOUR pocket?
Keep in mind you're only buying that SDK one time--no matter how many different applications you choose to create with it. This is no different from how many other industries operate.
Keep Up with TechRepublic