Again, the point is not to have an real language for any efficient real world usage. The point is to have a simplified language that represents a series of commands operating on a bank of memory. Like this:
SET 1 100 # Set memory[1] = 100
SET 2 500 # Set memory[2] = 500
ADD 3 1 2 # Set memory[3] = memory[1] + memory[2]
It's easy to explain what each individual step is meant to do and you can build up to more complicated instructions. It allows children to see the persistent effects of running the program, mutating the state of the memory, eventually introducing the instruction counter itself as a state variable.
>eventually introducing the instruction counter itself as a state variable.
If you're going to be talking about the IP register than you need to talk about the IR register. So we should avoid talking about registers by talking about registers?
You're not selling this registerless assembly very well.