If that's how you want to test potential engineers, I don't necessarily see a problem with the task itself. Just pay them! I'm sure Uber can find the budget for that.
I'm sure they're fine with engineers who don't ask to be payed for random tasks encroaching their private life.
Snark aside, it can iffy to pay someone for a task at your company when they are still under contract in their previous job. In that sense, while your point is sensible, it can be difficult to go that route from the candidate side.
Yup. Will anyone who cares find out that a competitor paid you to do some task? Probably not, but it seems like an iffy proposition to violate your current employment agreement to have an interview.
I once was invited to interview for a startup to work with their (mostly remote) team for a week, for which they would compensate me at a decent rate. I never managed to find the drive to take a week off for this, but yes, it would have been tricky to explain to my then manager.
I doubt they had the budget for that or they likely wouldn't have been essentially trying to get someone to making their MVP under the guise of a new hire interview.
Keep in mind the OP mentioned that this was pre-launch, when they were still UberCab and only had aspirations to be a peer-to-peer cab app. Long before they started marketing themselves as a logistics juggernaut or world changing self driving car creators for valuation justification purposes.
Snark aside, it can iffy to pay someone for a task at your company when they are still under contract in their previous job. In that sense, while your point is sensible, it can be difficult to go that route from the candidate side.