You _could_ make this have an indistinguishable customer experience. Uber now gives you a quote _after_ you've entered both origin and destination, and said quote expires after some time. Given that, they could look at all locally available drivers, assess their "bid" prices and make an assessment of what they can choose to quote the customer.
They would probably take _some_ pricing risk, since they might not want to "lock" drivers that they've used as the price basis, but that seems like a minor problem: Uber employs lots of engineers and I'm sure a few of them can figure out a way to safely manage this pricing risk.
> You _could_ make this have an indistinguishable customer experience.
I don't really see how this could work. the first issue is getting the pricing information from the drivers. are they willing to set a flat per mile rate, or are they going tailor fares on an individual basis, after browsing the currently requested rides? the latter would make it impossible to just compute a price from querying a db; there might need to be multiple rounds of bidding before the rider and driver could settle on a price. the former case would not be quite as complex, but uber would still have to ask the customer how they value wait time vs. price or decide for the customer.
i personally like the model of bidding on rides, but most people use uber/lyft because it's as simple as opening up the app, committing to a ride, and hopping in after a few minutes. i don't think it can work that seamlessly if every driver sets their own (possibly complex) fare scheme.
They would probably take _some_ pricing risk, since they might not want to "lock" drivers that they've used as the price basis, but that seems like a minor problem: Uber employs lots of engineers and I'm sure a few of them can figure out a way to safely manage this pricing risk.