Deref は推移的に使われることがあるので、ループする設計だと普通にマズいのでは
まあそれはそれとして、 Deref の意味がそもそも合ってないからそういう表面的なソリュッションは嫌われると思うけど
std::ops::Deref - Rust
https://doc.rust-lang.org/stable/std/ops/trait.Deref.html
> Because of this, **`Deref` should only be implemented for smart pointers** to avoid confusion.