Unity used to take advantage of overloading to implement null checking with "sentinel values" representing a non-existent reference in the Editor
I found this post explaining they considered moving away from the pattern, but I'm not sure if they followed through:
https://blogs.unity3d.com/2014/05/16/custom-operator-should-...