My understanding from working on online game time / game bux cards (a little different from gift cards but not really) is that it makes the accounting much easier if your gift cards have an expiration date. Because you can't properly recognize the revenue until the gift card is used / expired, and if there is no expiration date, then you could potentially have revenue sitting around forever that you could never recognize. Terrible from an accounting / finance perspective. So it's not really greed it just makes things much easier to deal with and makes your books more sane.
That is my understanding anyways. I could be wrong.
Thus serving the convenience of the accountants over one's patrons.
Any sensible company should account for the gift card balances as a liability on their balance sheet exactly the same way a bank does its depositors' money.
The potential problem is that predicting how much liquidity you'll need to fulfill those liabilities in a given year isn't so easy. Banks are regulated to ensure that depositors are never out of their money. Some businesses have gone under as a result of getting this wrong with gift cards.
From my experience i've had the opposite approach. Anything that doesn't live up to my standards or simply doesn't work out i return. I return ruthlessly and i've never had any problems. However my rate of return is still less than 1 in 20 and i purchase a fair amount.
I've never heard of anyone being banned for returning items on amazon?
The question was simple: why do gift cards have to expire? The answer that nobody wanted to say: because we don't want to leave money on the table.
It was a frustrating exercise in futility as the customer priority took a back seat at the first sign of decreased liability/free money.
Also we would cancel orders for relatively minor pricing mistakes where I believed we should have ate those costs as a teachable moment.
On the other end though, as a customer I'm more scared of Amazon than walmart. As an Amazon.com customer, I consciously avoid returning unless I absolutely have to because I care about my account. I fear amazon will honor my ridiculous requests to a point and ban me at some point. I (unsuccessfully) tried to return an air mattress to Walmart after a week of use because it didn't hold air perfectly (they never do). I don't fear being banned by Walmart.