The issue that you’ve encountered is because functions are only ever evaluated once. Even when they have multiple exec outs like your first example, the best a function can do is choose one to activate and then be done. They have no way to to be re-executed and choose a different output.
If you look at the macro used for loops, you’ll notice that they involve a physical loop in the exec at some point to return control back to the loop after the body has been completed. You just can’t do that from within a single function.
That’s the bad news. The good news is that there is a C++ solution should you be so inclined and that is Custom K2 Nodes. There’s two flavors of them, the easier one basically allows you to create node macros from C++ and do all sorts of amazing things. I built a For-Each node that worked for Maps (the container, not the asset) which was basically impossible to do from the blueprint macro editor.
Early this year I wrote a tutorial Improving UE4 Blueprint Usability with Custom Nodes that tried to explain most of the knowledge I had gleaned since the existing docs and tutorials were basically non-existent.
I would be curious to know what you feel needs to be improved with the for-loop. It’s never really struck me as a node that has any real problems.