I love how you guys always think about the user first, and I've been thinking about this during the week.
One way (much brainstorming left) would be to start off by configuring the system just like you are doing it now, as this has been working well.
Following the initial setup, the system could periodically (maybe once a week) run the user through a quick survey: Did any zone experience drought stress? If the answer is no, then the system knows it is overwatering and should adapt the parameters (weighted by temperature or other factors) to reduce irrigation. In the long run, the system would then reduce the water consumption to the minimum.
Additionally, the user could at any point enter a "water now because of drought" stress command, and the system would use this input to know that it has set its parameters too aggressively and need to increase watering.
This would be somewhat similar to the Nest where the user only tells it if it is too hot or too cold and the thermostat learns the schedule.
For Rachio, on the back end, some form of reinforcement learning algorithm could be implemented to do parameter finding. There could also be a lot of crowd-sourcing through the data analytics by mining the inputs from nearby neighbours with similar setups. This could help the system converge faster.
A lot of this can be modeled & simulated ahead of time to test different approaches.
Let me know what would be the best way to continue to explore this.