All the internal plumbing is staged for this to happen, we just haven't gone all the way. In short, a NESTED_LOOP traverser has an internal loopStack where repeat(repeat()) will have a loopStack of two. The it.loops() checks of the internal repeat will always check the top of the stack and when its done repeating will delete its counter off the top of the stack.
Daniel Kuppitz's work on LoopStep will be backwards compatible. In RepeatStep we will support:
and thus, things like loops('a') as well as times('a',2). Note that naming the loop stack will be a super rare case as most people will just assume standard nested looping semantics with a push/pop stack.