This is actually the reason I don't often buy advance tickets for things. After getting burned for Nats tickets I bought early in the 2005 season and couldn't use because I was out of town for almost a month near the end of the season, missing two games, I didn't buy advance seats again until a moment of weakness last month. I'm going to be furious with myself if I can't use some of the tickets. I am really incompetent at unloading extra tickets and have eaten the cost enough times that I shy away from buying advance tickets for anything. I hate wasting money.
It seems to me that unlike some of the examples used here, a reservation that is ignored/skipped/etc. is the only one that causes the business to lose money, not the consumer.
if I buy an opera ticket and don't use it, they are still paid.
If I buy an airline ticket and don't use it, heck, the airline makes more money (since they use fractionally less fuel, or don't need to issue a voucher to someone, or provide me with my precious Coke Zero).
But a restaurant loses the opportunity for me to spend money. It costs me nothing to skip it, and they lose out on potential revenue (especially if they are holding a table for someone who cannot be bothered to call).
So, IMHO: yes, reservations should be confirmed. There should be a penalty for no-showing, but as long as you call ahead, they should give you the benefit of the doubt. After all, there are potential walk-ins.
And if you don't know if you can make it, you should realize you're taking the risk.
That's just me.
I often pay extra for hotels and airlines rather than take the super great deal that I can't change or get my money back from if my plans change.
Perhaps this is just my own peculiar psychology, but making restaurants more like these other businesses will keep me away more. I'll just gamble on walking in and seeing if I can get a seat in a reasonable time. (Again, I understand these arrangements for special occasions and events, and I will sometimes take a leap and get hotel/plane/concert tickets to see a band play in a another city. It's a gamble, though.)