But usually? I switch from uber to lyft on my daily commute based on saving a few bucks almost every day. (right now, Lyft has some scheme where you can buy a 30-pack of $15 off coupons for $300. But they're used every time you ride lyft, so if you want to go somewhere for less than $15, you use Uber)
I mean, 90+% of my rides are areas I ride in a lot, where it would be worth my time to put a fair bit of effort into discovery.
I think that on the driver side, there's a lot of drivers with very strong locational preferences, too; If you are in SF and try to get a ride to San Jose, my experience is that 3 out of 4 uber drivers will kick you out of the car when they find out, so I think you might be able to recruit drivers that way, too.
Assuming that you have cheap/open source software (a big assumption) you could even setup federation. Like you and your crew setup a co-op in one area, and get a lot of riders through personal contacts. I and my friends setup a similar drivers co-op in a nearby area, and similarly use our contacts to build up a very local critical mass.
With federation, you could set it up so that if one of my drivers went to your area, say to drop off a customer, they could optionally be put on your network, either to work there, or maybe just to get customers on your network who wanted to go to my area.
I mean, you still have the huge problems of bad behavior, but I don't think uber/lyft have really addressed those problems very well, either. I think those problems are really hard, and maybe those problems would be easier to solve with a bunch of smaller but federated companies than with two large companies? Maybe not. I don't know.
I'm just saying, I think a lot of the critical mass issues could be pushed off to local leaders.