What you see, is memory not reclaimed by the the OS yet, but already given back to the OS by your newLISP process and accumulating over time.
Take out the ‘exit’ statement at the end of the program, so it will stay in newLISP, but not run. When monitoring (1) the process, you will see that the OS will slowly take back the memory, after newLISP comes to a halt. On my machine resting at about 5Mbyte coming down from about 550Mbyte. If you run your program on a machine with less memory, the maximum you see in the monitor would be less too, because the OS takes a different strategy reclaiming memory faster, but your program will also run slower.
(1) I am running the OS X monitor application and an 8Gig RAM Mac. I guess the Unix 'top' monitor app would work too.