...software developers have two choices when trying to win over users: (1) add features not available elsewhere, and (2) release the source code. There is no other currency of value that developers can extend to users.
No other? What about a good user experience?
In some market niches, people will pay extra for a product which is more fun, easy, and rewarding to use. And user experience is not just about adding a bunch of features; it's about knowing your users, and designing the right kind of product and interface for them. That's often resource-intensive, but it doesn't have to be. Skill and knowledge can give a developer an edge.
When users treat good design as a differentiator, the software-as-commodity model can break down. It doesn't always, but enough that you might want to take it into account.