The thing to realize about compensation or free blankets or free scotch or anything else is this: There isn't some great pot of money lying around at an airline that they can use for stuff like this.
If an airline had to compensate passengers there would be only one way they could fund it: By raising fares - And that would impact you and me.
What I would much prefer would be a clear mechanism whereby passengers could buy insurance options at the time of ticket purchase that would cover them for the duration of their itinerary. The insurance would provide compensation due to delay or would get you on another carrier (if available) if you're delayed more than X hours or whatever.