When is it useful to split critical edges?
An easy google search shows in Muchnick, Advanced Compiler Design &amp; Implementation, Section 13.3 Partial-Redundancy Elimination, pp 407-408:


  A key point in the algorithm is that it can be much more effective if the critical edges in the flowgraph have been split before the flow analysis is performed.


So the notion is useful to increase the efficiency of certain flow analyses in redudancy elimination, which aims to find portions of code with common sub-expressions and hoist them out into a single computation, which is facilitated in the absence of critical edges.