The machine has no physical ordering required here, so the choice of pick vs call order is arbitrary. We chose pick-after-call several years ago, before there were predicated calls, based whether we thought f()?x:y was more or less common than b?f():x. Perhaps we should re-examine that. The way our devtech works, it would be three one-line changes in the code base to switch, and all the tools would be using the other order.
Or we might leave it as is until we have enough of a testbase for measurement both ways 🙂