Hi Burk,
Refactoring is about changing how the code does its work without changing what it does, that is without changing its external behavior. In that sense, we have to be able to define the boundary of what we consider internal vs. external.
For example, if we consider an imperative style code where we have a local variable within the function that is mutated within a loop. As far as the loop, it has a side effect on what's outside of the loop. If that variable were a field instead of local variable, that side-effects is much worse.
In the refactoring chapter the examples discussed deal with the first case, where the changes are local. I do not focus on the larger side-effect of fields. Such side-effects will require further refactoring to remove the side-effects to fields before applying the functional techniques.