The issue is if you need A, B, and C to do a task and your function fails if it doesn’t retrieve it, won’t it waste time cleaning ingredients for a dish you can’t make? I don’t think it’s less readable than
carrot = fetch carrot
onion = fetch onion
celery = fetch celery
clean(carrot)
clean(onion)
clean(celery)
cook(carrot, onion, celery)