will answer other comments later, but yes, this is useful for generic programming. 
currently __traits(isSame, double,double) is false, for example. 
For example, I'm using it in isSameTypeTuple (isSameTypleTuple :) ), which is itself used for validating GetTemplateArguments unittests, but could be used in many other situations: eg comparing a ParameterTypeTuple to some defined TypeTuple.
I don't see why this feels terribly wrong.