This is similar to AutoLisp which has only immutable cons cells and strings. There are no global referencing functions, like rplacd. args are locally bound, but without refcount bumping.
It sucks a bit to copy everything, you cannot efficiently share big lists, but the benefits were much larger.