Is there really a practical difference between double spending and generating coins out of thin air? I can just duplicate coins by sending to two wallets I control. Or is there something that would prevent me from later spending some of those coins?
I think that they would not be able to do that: only one of the two transactions could be in the longest correct block-chain. That's because it is easy for the clients to detect and reject a block-chain that contains double spending.
What they can do is pay for goods or services and revert the transaction after the goods or services have been delivered.
You can spend the same coins twice, but you do not end up with 2x as many if you don't spend them at all. So you can end up with 1x worth of goods and 1x in your wallet like you never spent them but you can't end up with 2x in your wallet.