Regarding the observed leaks in guile. A question is if this is due to some kind of memory fragmentation more then a pure memory leak. In the observed bug where in constructing and droping threads, one can see that memory leaks dramatically
and 2Gig is consumed after about 2000 constructed threads. If one issue a direct call to scm_gc att the allocation of the stack the problem becomes much less dramatic. It looks like gc is run to free a certain amount of memory but not taking care of the alignmnent
so that the collection phase lead to the right amount but due to fragmentation the memory is not contiguous. Hence more memory is allocated and the system seams to go into a state of keeping freeable memory and allocating new memory in about the same speed.
I would try to do an experiment where one allocates the stack with scm_malloc and free it with free and attach mark and finilizing functions to see if the problem disapears.