Microscheme is not garbage collected, at least according to the documentation.
This would be awful for general-purpose programming, but on a device with only 2.5kb of RAM to begin with you can usually pre-allocate anything that needs to survive that reset. I use this in my keyboard firmware's outer loop: http://atreus.technomancy.us/firmware2