American Airlines has a policy that if a flight is cancelled for any reason other than weather, AA will pay for stranded passengers' hotel and meals until the passengers' rebooked flight. If the cancellation is due to weather, passengers must pay for their own lodging and food.
This seems to create an incentive for the airline to blame suboptimal-but-still-flyable weather conditions when they must actually cancel a flight for another reason. There is a lot of news lately about cancelled flights due to crew shortages and pilot strikes. It seems in an airline's financial interest to shift the costs associated with these cancellations (e.g. unexpected hotel stays) onto passengers.
Are there accountability mechanisms to prevent an airline from doing this? If so, how do they work?