In that situation a "0 hour contract" would mean Uber has to pay for all of their benefits even if they don't work at all. A net negative for uber, so the 0 hour contract isn't created. The only way this changes while not ensuring uber loses money on their drivers is if they operate like a regular company and have both part-time and full-time employees, with 20 hour minimums for part-timers.
when people are on 0 hour contracts, the company still has to pay social insurance for the employee. Some of which are not bound to the hours worked.
Also, a 0 hour contract is a iffy construct. If someone can show they worked N hours on the regular, they have the right to get a contract on the amount of hours they worked.
Also, 0 hour contracts are only allowed for a limited number of times afaik. (2x up to one year i believe).