I tested your example code in GHC 7.6.3 and at least there I get an actual compilation error instead of a warning in both GHCi and when compiling. It seems that the automatic instance deriving isn't smart enough to realize that it only needs to match a single constructor with the given GADT.
The following works though
data Client
data Temporary
data Permanent
data Token ty where
ClientToken :: Token Client
TemporaryToken :: ByteString -> ByteString -> Token Temporary
PermanentToken :: ByteString -> ByteString -> Token Permanent
deriving instance Eq (Token ty)
But maybe your real use-case is more complex?