Hm. IS_DESTRUCTED (svalue.h) has a very complicated case for trampolines (which is what you get if returning a lambda referencing its environment), but it doesn't seem to be calling anything in the object no...
As for your "is_living" function, you could add an optional second argument to use as a different value than "0" as the fallback if you want to.