I'm not sure if it is the goal to be able to break out of any level of
nesting or at least that's not how I interpreted the original
proposal. It is what happens for this stop() function but only because
there's no other way.

As I'm reading it, the while clause would be evaluated once for each iteration of the innermost loop, and would be able to access the current values of every loop.

ls = [ line for file in files for line in file while file or line ]

...would become...

ls = []
for file in files:
    for line in file:
        if not (file or line): break # break if not while_expression
        ls.append(line)