returning Eo* object (any Eo*) will cause a permanent reference leak at the point of execution. leak includes execution context. if you consider example(which is from T4422 modified to use c[j] for something in the closure - forcing v8 to bind upper context to the loop) it will never be freed even if unrefed. also it will keep the context from being destroyed. please note significant rise in v8 heap.
issue is different from T4422 as it deals strictly with Eo* objects being return and here Persistent's are not really the case.