Waiving cancellation fees for upgrading creates an incentive for people not to pay for J-class fares at the time of booking.
Why should I pay $5,000 CAD for an I class seat to HKG when I can pay $2,000 for a Y+ seat and then pay the fare difference when I see the inventory drop to I1, or the booking deadline is approaching. That way more of the money stays in my bank account, rather than CX's. Granted, the cancellation penalties are greater than the interest costs on that money, but the cancellation penalty creates a disincentive to that kind of gaming of the system, and provides the airline with more reliable information for yield planning.