Further in depth analyses is really down to money.
If you have a system where credits are not refundable and that these credits can only be spent, if someone pays you $100 and only spends $50, that person has either got to try spend that and buy more credits if they are short of credits to spend them or lose the.
In reality, this is going to be the odd few $'s that are not spent which relates to more income for the company.
So, do the math, how many customers paying a deposit to turn in to credits has your competitor got? Assume that each one pays $100 but spends $99 and doesn't return at a later date to spend that $1...
Then you look at costs involved, it is costly to have someone employed to deal with refunds, a company I worked for had a very lengthy refund system, first they had to ensure that the money from the vendor had been received and that the clients payment to them had in fact been completed. Then it was a waiting game because the goods had to be faulty, so either the goods were tested on site, if they could be repaired then they were repaired, assuming that everything didn't work out, the engineer would sign off on the refund and the money would be sent via the banking system directly in to the clients bank account.
It sounds costly to do the refund but in reality it is saving the company money because they are holding on to your money for as long as they can.
I recently paid for a car via a bank payment, however the bank ****ed it all up... ended up paying a regional utility company the money, it took 6 weeks to get the money back as it was paid in error by the bank and I had to prove that the money was paid in error...
SO they are all at it, big, small, public sector...
so my answer may have seemed short, but thats the reality of it, it all boils down to... Money.