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.
If you want to limit your pool of potential hires to rock stars who don't have jobs (pool size of approx. zero) this is a great approach.
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.
For context, for my first job as a developer the take home assignment I got was creating a web app that logged realtime CPU usage and created a graph of that CPU usage that was updated in real time.
And this all had to be done using a specific language, web framework, and database that I had never used before.
That's at worst a 4 hour job to do with a beer over the weekend. You sound incredibly incompetent if you can't tell the difference in difficulty between that and that they asked OP to do.
That assignment is 1/128th the work of point 1) from OP.
In understanding the question.
At any rate, you still haven't replied to my job offer. I need you to do two weeks of free work for me.
You sound like the type of engineer I get hired to replace at three times the rate when the project is on fire because they didn't understand the spec.