AC has a complicated equation here. At the minimum, it must work within the IATA guidelines. Customers need to complain when those guidelines aren't being met. Secondly, it must keep its customers happy so that they jump to another airline. I am sure AC has a standard, but the employees are going to interpret it in their own way, either by being too stringent or even being too nice (we like that...)
Like any business, if you don't get the compensation you think you deserve for whatever issue it is, they have to know that you're not happy. I'll give a couple of specific examples.
On an AS flight last year from OAK to SEA, the flight was cancelled. We were delayed four hours. AS issued us the standard "delay kit" which was $5 in meal vouchers and $25 dollars off or 1,000 miles. This was not adequate to me, so I fired off a letter to AS. We got $125 x 2 travel vouchers. On an UA flight from YYZ to ORD, the flight was delayed 3 hours (mechanical) and we had to overnight in ORD to catch our connection. Again, letter sent, $100 x 2 travel vouchers. For my old Neon whose head gasket busted one month after the warranty ended costing me $700 in repairs, a letter to Chrysler; they covered the repair... the list goes on...
For every case, you need to complain sometimes to get what you think you deserve. Ask for what you really think is reasonable usually works. And stressing your loyalty to the company (AC) and how you are usually happy with their services works wonders when asking for something. I find that AC is usually pretty compensating (automatically) to me when I am delayed.
As for overselling, yep, the airlines are gambling, but they usually maximize their revenue that way. I was on a flight last week from YYZ-CLT that was 5 seats (on a CRJ) oversold. No one gave up their seat. I am sure the airline paid generously on that one. But in most cases, there are people who are willing to get the $300 voucher to delay their travel. I actually know people who are flexible with their travel plans who like to take advantage of these situations by booking flights in heavy travel times. Airlines win here. They sell the seat and give the customer reduced compensation.
So, if you're feeling undercompensated, write a letter. Don't call CSR as they will simply give you the line that they were trained to feed you.