This one-use limitation is artificial, we do not increase instruction count if we fold it with multiple uses. The motivating case is shown in @sub_eq_zero_select, where the one-use limitation causes us to miss a subsequent select fold.
I believe the backend is pretty good about reusing flag-producing subs for cmps with same operands, so I think doing this is fine.