That's what they already do, airlines will cancel your flight for any reason whatsoever: overbooking, finding a first class passenger who pays more, choosing not to have enough personnel on duty, etc. Until your plane with you on it is actually airborne, you have no idea whether or not you will be allowed to fly, so there is nothing unfair about not turning up for (what might be) your flight.
Maybe if a ticket actually held some sort guarantee for getting a seat on an airplane things would be different...