Not really. The flattening part is old hat in functional languages, though this particular formulation is restricted to the special case of "non-recursive" functions. I don't know about the particular optimizations they apply to the flattened code.