This addresses a failure which could occur when optimized IR eliminated handler-specific blocks and created a single shared handler representation. The IR unconditionally flows into a handler block even when a selector dispatch would normally be expected. I believe this can only happen if the landing pad has a catch-all handler and the handlers for prior clauses are identical to the catch-all implementation with no intervening clean-up.
My proposed solution effectively eliminates the type-specific catch handlers from the final IR produced, but I think this is good because the resulting code will be more compact yet functionally equivalent.