@whale-av There is a counter defined in m_obj.c. If this counter hits 1000, the code execution will stop and "stack overflow" will be displayed:
static int stackcount = 0; /* iteration counter */
#define STACKITER 1000 /* maximum iterations allowed */
[pipe] and [delay] reset this counter, so the stack overflow doesn't occur. I think this is the expected behavior and not a bug.