A fair solution would be for the airline to block funds on pax credit cards similarly to hotels and car hire companies. Once the flight departs the airline is credited whether the passenger is onboard or not.
This is fair to both sides as pax aren't charged for flights which are cancelled and airlines know that they will be paid if the flight goes ahead.
Some people may book on two or three airlines in anticipation of cancellations leaving empty seats and then expect refunds.