I don't think that this behavior may be used often : it is hard to know at which level in the stack the calling object is and, if we could, it could be different depending on the situation. Maybe a 'max_stack_level' that look for the 'closest' scope holding a 'self' var should be better.