Do not (ever) use substExprSC in the simplifier
"Short-cut" substitution means "do nothing if the substitution
is empty". We *never* want do to that in the simplifier because
even though the substitution is empty, the in-scope set has
useful information:
* We get up-to-date unfoldings; and that in turn may
reduce the number of iterations of the simplifier
* We avoid space leaks, because failing to substitute may
hang on to old Ids from a previous iteration
(This is what was causing the late inlining of foo in
Trac #4428.)