Why does Iterator::by_ref require Self: Sized?

Coming from this discussion, I had a look at Iterator::by_ref.
Why does it require Self: Sized?
It takes a &mut Self which is always sized and returns the same.
So why require this restriction?

as for the functionality of the method itself, it doesn't need the Sized bound. if I would guess, the bound is there to opt-out this method from the dyn Iterator<Item = T> type, or in other words, without this bound, the Iterator trait will no longer be dyn compatible.

Yeah, this is a common pattern with traits that are combinator-style, but also need to be dyn-compatible. I always found it a little strange that the way you spell "this specific method isn't dyn-compatible" is where Self: Sized.