1) A loop is defined by setting the row set and looping a subjob with the "Execute for every input row" option (see attachment testjob.kjb)
2) Within the subjob (attachment loop.kjb) you have a "Dummy" transformation and a transformation that writes the result rows to the log.
3) Run this with 5.x: The result rows get printed to the logs
4) Run this with 4.x: The result rows get not printed to the logs when there is a "Dummy" transformation.
4) Within 4.x: When there is no "Dummy" transformation, the result set gets printed and is kept intact.
This is a bug, because there is no feature/improvement logged for 5.0 that changed this behavior nor a documentation about this change.
The actual behavior since 5.0 is better since the row set keeps available also to all transformations.
There is a workaround to keep the 4.x behavior: check the option "Clear list of result rows before execution"
We have better options to loop through rows by using the Job Executor and Transformation Executor steps.