It all doesn't matter, these are code fragments that are not in context of a full program.
Lets look at the labels on these code blocks (in a chapter called "Chapter 2: Meaningful Names")
> Listing 2-1
> Variables with unclear context.
> Listing 2-2
> Variables have a context.
What part of that would even suggest that they are indicating the most performant, idealized code?
They are non-complete random code fragments meant to discuss one of the hardest problems in computer science...naming things.
It is simply a poor example of "Variables have a context" being more readable than "Variables with unclear context", not a suggestion that the lifting principle is required.
This is _simply_ an example that is similar to the extract and inversion method that all of us that get brought in to break up legacy monoliths have to do because often things are a big ball of much with vars that look more like it was written in the language Brainfuck or obfuscated Perl than anything reasonable.
That is not anything that the Clean camp, or even Bob came up with...it is often the reality when trying to save systems from architectural erosion or....
But seriously if you consider 'clean code' as cargo culting design choices without though from any source, you are going to be screwed no matter what.
The number of competing needs related to a dozen types of cohesion along with a dozen types of coupling will never reduce to a simple set of rules.
Strings are interned either in the string pool, or even if you use New...which this code wasn't, anything newer than 8u20 will dedupe and duplicate strings will only have a single instance even if they aren't in the string pool. So long lived strings total space usage isn't really massive.
If you choose to save the size of a pointer with what appears a short lived single computational class anyway, sacrificing readability and maintainability, you will have far greater problems than inefficient memory use.