Как будет работать такой оператор по умолчанию ==? Для ссылочных типов сравнение адресов целесообразно, но поскольку эта проверка никогда не будет истинной для двух типов значений (поскольку, если два типа значения находятся в области видимости, то они гарантированно имеют разные расположения в стеке), сравнение адресов бессмысленно.
Как подсказал компилятор, ValueType намеренно не имеет оператора по умолчанию ==.