Automatically taking responsibility for all cancellations--whether malicious or not--would be a vector for fraud and abuse.
The fact that they, by default, delegate this to the customer is incredibly shitty.
If you're a rider or driver with a couple hundred trips, we can be sure that you're legitimate... unless your account has been hacked. Uber accounts are especially valuable to hackers, so we can imagine some percentage of legitimate accounts are making illegitimate ride requests.
If you're a first-time driver, then Uber has done a background check and a vehicle inspection, but there aren't any rider ratings, accelerometer data, etc. yet.
If you're a first-time rider using https://m.uber.com/ to take a ride on a cash-payments enabled product... then there isn't a whole lot of data to go on.
You can read more about what Uber does to prevent fraud at https://eng.uber.com/tag/fraud/
If you have tons of cool thoughts on fraud engineering and are interested in implementing those thoughts on a world-class platform, you can find fraud engineering-related jobs at https://www.uber.com/careers/list/?city=all&country=all&keyw...
You can have all the data in the world and still make bad decisions.
Sometimes it's cheaper to just pay the customer rather than hiring more engineers to work out a fraud detection algorithm.
I think Uber has realized this.
No, without it, Uber would have to eat the cost of whatever progress drivers made towards the rider.
You tell the drivers to go somewhere (And punish them when they don't) - it's on Uber to pay them.