At least in my experience, I asked for compensation 3 times and got the money in every case (with different companies: American Airlines, United and Lufthansa). But I agree the system could be improved further.
Fortunately, I've used a debit card for the purchase, which made it possible to recover my funds by using chargeback.