I'm not so sure - I think it's more for other reasons, I wouldn't necessarily attribute it to something so complicated when there's a few quite less complicated good reasons I can see for it too - like lowering transaction fees by performing less transactions (if I buy a big pack of tokens, I only make 1 purchase, rather than doing a ton of small transactions which will kill you on fees from many payment gateways) - or easing the burden on customer support to explain why they can't refund a partially spent balance.
When I buy a pack of tokens rather than depositing USD or similar into an account, I'm more likely to spend all of those tokens. I'm also not likely to say "hey, I demand you give me my remaining balance back" after buying a single cheap item. It also makes giving rewards easy and makes sure that money will be spent in the same place.
Some free to play games, World of Tanks for example have larger things that are sold both in gold and in USD - because they make it possible for people to earn gold in game through multiplayer competitions but want it to be easy for someone who just wants premium time to buy it with cash.