>>964
std 内の定義の特殊化は「標準ライブラリの要件を満たす限り」という制限の範囲で許されている。
https://timsong-cpp.github.io/cppwp/n3337/namespace.std
仕様で偽値を返す場面を真値に変更するような特殊化は許されていないってこと。
(最新の仕様ではもっと厳しい制限がついてる。)

std::is_signed に関して仕様に反せずに自作クラスが真を返すということはあり得ないので
自前で特殊化しては駄目。

std::numeric_limits を特殊化する分にはアリ。