This may be the "least bad" choice, but it still isn't a good one. Besides the lost revenue from new customers, Wil mentions another important problem: If existing and new customers are charged the same price for an upgrade at least some existing customers are likely to consider it unfair (especially given past practice in the software industry) and to be angry about it.
That may or may not be a rational response. After all, if someone thinks an upgrade is worth $X, why should he or she care whether or not a new customer is getting the same price? On the other hand, a developer demonstrating that they value customer history and loyalty (with a discounted upgrade) is a strong signal that they value the long-term customer relationship. That is something a customer could rationally care about. Either way, the potential for existing customer anger is a problem developers will have to deal with.
Wil's post might also be a pre-emptive strike against potential, future customer anger. After all, if a customer complains that they're not getting a discounted upgrade, he can point them to this post.
That may or may not be a rational response. After all, if someone thinks an upgrade is worth $X, why should he or she care whether or not a new customer is getting the same price? On the other hand, a developer demonstrating that they value customer history and loyalty (with a discounted upgrade) is a strong signal that they value the long-term customer relationship. That is something a customer could rationally care about. Either way, the potential for existing customer anger is a problem developers will have to deal with.
Wil's post might also be a pre-emptive strike against potential, future customer anger. After all, if a customer complains that they're not getting a discounted upgrade, he can point them to this post.