>>144 Unionの間違い?
SortedList<,>はIEnumerable<KeyValuePair<,>>を実装しているので
識別比較の挙動はKeyValuePair<,>の仕様に依存する。
KeyValuePair<,>はEqualsをオーバーライドしていないので、ValueTypeのEqualsの実装が使われる。
ValueType.Equalsはリフレクションを使ってすべてのフィールドの値を比較する。
基本的には、IDictionary<,>をはじめとするIEnumerable<KeyValuePair<,>>には
識別比較を行うようなクエリ演算子は使ってはいけない、でいいと思う。