That runs counter to almost all modern thinking in language design -
visibility and access should, by default, be restricted as much as
possible.
Rick doesn't "get" that the low levels are made irrelevant by the language.
You can complete a project in a modern language without ever having to refer
to machine registers or stacks, and in much of the code (in some cases all)
you can avoid mutating variables.
The machine may be a Von Neumann stored-programc omputer pushing word-size
quantities through a meat-grinder like CPU, but at no point in the cycle of
that program do you have to think about this.
(The exception to this occurs when something goes so drastically wrong, that
you have to debug below the language level. Perhaps the run-time has a bug, or
else the language has holes in it which allow behaviors outside of its "box",
which, if they go wrong, can only be explained/root-caused by going to the
lower levels.)
The idea that because machine/assembly language is such and such, or the
computer architecture is in a certain way, all computer *programming* is such
and such, is laughably naive.
Languages and their environments completely change the face of the computer to
a different personality, and reshape (perhaps from the ground up) the mental
model used for programming.
Those who don't understand this are condemned to be the proverbial programmers
who "code Fortran in any language".
This is what we are dealing with here (though perhaps substitute "x86 assembly"
for "Fortran").
Fact is that a code generation task based on substituting variable pieces
into otherwise static templates can be solved without mutating variables.
(It cannot be solved without stacks being walked, or registers being loaded,
but that is irrelevant since none of these concepts appear in the structure of
the solution expressed in the high level language.)
Moreover, any solution for that type of problem which involves mutating
the templates themselves is decades behind the state of the art.
I'd not give it full marks if it came in as a homework solution from a second
year CS student. First year, maybe.