When I talked to Enterprise on the phone about one-way use, they explicitly told me most places will waive the charge unless they don't have space to take the inventory. Rental car places have a lot of fixed capital costs like hotels, and renting the car at anything above a significant loss still recoups those costs. You can usually just ask for things. I've been offered upgrades pretty routinely just because they don't have the vehicle I asked for. They've always tried to charge me for the upgrade, but then I say "can you give me the rate I originally reserved?" and usually they give it to me.
Interesting that they’ve always tried to charge you for the upgrade - I’ve always gotten it for free without having to ask (though I use Avis almost entirely and can’t remember the last time I used Enterprise). They just tell me “Sorry we were out of this car, here’s an upgraded one”. Seems weird that they should charge you more for not having the car you booked. Granted, they never dump me into sports cars when it happens (it’s almost always the very next tier of car available).