This check must be done at compile time by the optimizer. If the function is not combinable, the optimizer will not inject a combiner into the plan.
Doing this check at runtime causes unnecessary overhead.