Здравствуйте, _NN_, Вы писали:
_NN>Семантика is null и is {} однозначная в отличии от ==, != которые могут либо вызывать сравнение ссылок либо переопределённую операцию равенства.
Ну так в том и вопрос! Если ты (наивный!) переопределишь == и будешь надеяться, что "объекты не равны", то при попадании в чужой "is null" твой код в пролёте! Сам себе расставил грабли. Ты не можешь знать, кто и как в будущем распорядится твоими объектами, поэтому всегда надо быть готовым, что == будет "немного другой".