enumはCから受け継いだものだからこの設計についてC#を責めるのがまずアホ

enumの主な使いみちは値を限定することだ
要するにintの値を引数にしたいがその値の種類は3種類に限定したい、それ以外の値を渡そうとしたらコンパイルエラーにしたい、そういう時にenumを使う
その関数は引数として3種類しか渡らないことを保証されてるから無理やり他の値を渡した際には未定義動作になる

enumが継承できてポリモーフィズムが効くとすれば3種類の値しか来ない関数に普通に他の値を渡すことができてしまうだろw

なんでenumを使いたいか知らんけど使い方間違ってるからenumをやめて正しい方法を使え
以上