SAT should only influence the unfolding
Various attempts have been made in the past (see #9374, #9374 (comment 86443) in particular) to improve the static argument transformation, like only letting it fire when there are at least n static arguments.
I argue that the value of SAT comes from when we are able to inline the SAT'd function (let's call it the wrapper), so that the nested local function that closes over static arguments (SAT worker) is specialised to the call site.
If it isn't specialised, we end up with more allocations in the generated code. It's strictly worse than the non-SAT'd function and is directly opposite to what we do in late lambda lifting, which runs "very late" for that purpose on STG where it can see whether it'll improve allocations or not.
It's a typical staging problem: If inlining succeeds, use the specialised version. If not, use the regular definition. Until we have proper staging and people exploiting it in key situations, we can instead make SAT store its result in unfoldings only!