Properly handle side effects with non-simple property pdspecs (i.e., those we cannot easily evaluate).
Before we inlined the value for all expressions and evaluated them all at once, so we never got any side effects.
Now if we're handling side effects, we only batch things with the same effects.
But we still use the cached result; we just first set the effects.