Dave,
Here is my try for motivating why assignment is a Big Deal, and a metaoperation.
If you write that every popular programming construct:
I = I + 1
and then pretend your're in your high school algebra class, there is something odd here.
The algebra class answer to
I = I + 1
is "no, it is not", and changing the '=' into a left pointing arrow doesn't help.
Only the most malicious teaching assistant would so abuse notation as to change the meaning of a symbol right there on one line. Symbols have agreed on values, which they retain throughout a given context.
In order to make sense of assignment statements, it helps to think of accessing a variable's value as evaluating a function, a function which always returns the same value.
Thought of that way, assignment of a new value to a variable amounts to changing the program that computes that value.
If invoking a function is a base level operation, then changing a function is reasonably a meta level operation.
...Tom M Tom Morgan