This change simply removes entirely a restriction in the runtime unrolling implementation which prevents us from unrolling loops with multiple exits in anything except the narrowest circumstances.
For context here, I think its important to note that this code originally didn't handle unrolling multiple exit loops (at all, it would crash), and then we selectively added one case with known motivation, and then iteratively widened the cases which could be done under force flags. At this point, there's no known correctness limitations left. I highlight this history mostly because it's tempting to think the existing heuristic is well justified, and frankly, it wasn't. It was simply us being conservative along the way.
For additional context, the unroll pass will do it's own cost model before invoking this code at all. That cost model is fairly coarse; it's entirely code size based. With the code here, we effectively had a two level cost model.
With all the context, why do I believe we should enable this? Because we're already runtime unrolling cases which are directly analogous to the multiple exit edge case. At the simplest, consider a C loop where all break statements are replaced with continues. (Ignore the fact this might not compute the same result.) We'd unroll the continue form, but not the break form.