Ничего не понял, но это интересно
Попробуем взглянуть на проблему с точки зрения математики. Как известно, NaN - это типичный результат для действий вроде деления бесконечности на бесконечность или ноля на ноль и прочих операций, результат которых с математической точки зрения не определен или не имеет смысла. Например, из математики известно, что логарифм отрицательного числа не определен. То есть следующая операция будет иметь результат NaN:
Math.log(-5) // NaN
При этом если вы попробуете выполнить такую операцию: 0/0 то ее результатом тоже будет NaN. В таком случае напрашивается вывод, что Math.log(-5) и 0/0 равны (в обоих случаях мы получим NaN). Очевидно, что это не так. Поэтому Принято допущение, что NaN не равен даже самому себе.
(более того, будь NaN равен самому себе, то помощью нехитрых преобразований можно было бы прийти к выводу, что 2 == 1)
Иными словами, NaN - это не какое-то конкретное значение, а просто некая достаточно удобная абстракция, под которой могут скрываться самые разные значения, совершенно не равные друг другу.