Sheldon,
I took a look at your routines, and don't see why they'd get a runtime error
after being compiled. Sorry about that; that appears to be a bug.
That said, I am a bit confused at why you are programming this simple
problem in such a way when you initially stated that you didn't want to
waste space -- and when several of us have proposed more efficient
solutions.
If your goal is to develop a particular style of programming without taking
efficiency into consideration, that is perfectly legitimate, of course, but
it is not supported particularly efficiently in Maxima (unlike, say, in
APL).
If on the other hand this is a class of problems that you want to be able to
solve easily and efficiently, I'd think the best way to approach it would be
to design and program some more appropriate map or sublist primitives, e.g.
property_run(list,fun), which groups all runs of list which have the same
value of fun.
-s