Rust の型システムの原型になった Haskell では Orphan Rule のような制限はないから技術的には制限しない選択も可能ではあるはずだけど
通常は避けるべきと考えられているし、警告も出るし、コンパイル時間にもかなり悪影響だし、良いことは少ない。

必須というほどではないかもしれないけど、あまりにも割に合わないとは言える。