The CLR ensures that all the variable space pointers are moved to match the end of basic pointer just set by POKE 56,16. Without it the program would seemingly run fine the first time and possibly be using memory >$1000. However a second run of such a program would correctly result in out of memory error