An example use case for many-to-many self-relation where two distinct fields are needed (one for each direction of the relationship) would be tasks linking to other tasks as ‘Blocked by’ and ‘Blocking’.
There are use cases where a single field self-relation might be preferable, but this is not supported, and can often be achieved in other ways.
You might want to read this discussion for some of the previous thinking around this topic:
2 Likes