There's something wonky about closed type families!
If both arguments to 'Min' contain type variables, only the first rule is ever tried. The family below gives 'Min n n ~ n' but if we move the first rule down, it no longer computes!
https://gist.github.com/wenkokke/7ffe68c9c2dc06679d9e6f63d2bcad17
Both Stephanie and Richard actually responded! In short, it's because Haskell let's you shoot yourself in the foot by writing non-terminating type families, but they didn't want to let that translate into letting you shoot yourself in the foot by writing segfaulting programs.