I don't get why rental firms don't instantly end this problem by requiring a non-refundable deposit for everyone except Elites or something. When I rent I rent on a fully prepaid reservation - I've paid up front. I'd be livid if there was no car for me - they've often had my money months prior to pickup.
If I changed my mind 30 seconds before pickup I'd expect them to take money from me for the inconvenience - I'm amazed they don't. Hotel's and Airlines certainly do unless on a high cost flex rate.