Unity's C# has always felt like C#'s mentally challenged cousin. C-not-so-sharp. The custom == convinced me that allowing operator overloading on built-in operators is one big mistake.
Yes, "dot operator can throw a NRE" is of course a big mistake. A billion-dollar mistake, you can even say.