See, for example, https://www.wikifunctions.org/view/en/Z15717: is Boolean
There are two implementations. The first is simple Python and tests take around 6000 ms. The second is a composition and tests take around 4000 ms. Similar differences (probably more significant) can be seen using Try this implementation. And yet, this composition is simply defined as: If(is Boolean(Argument reference("Z15717K1")), true, false), so it’s exactly the same code that provides the evaluation. It just requires less time to orchestrate. I’ve no idea why this should be so, but the explanation might help improve orchestration more generally.
Apologies if I’m missing the blindingly obvious!