For one thing, the required signature is "def __richcmp__(self, other, op), where "op" automatically gets treated as "int". I would expect that "self" is implicitly typed to be "Japan_Car_ABC" but "other" will just be "object", since that is what the python API specifies.
However, the error that you get seems to suggest that in a "pxd" you cannot declare special methods. That makes sense, since they are not part of the C-API of the class. They declare a method that ends up in a slot in the PyType data structure. Furthermore, unlike "inline" code which does need to be available in the header file, this needs to be compiled as an actual function, so it belongs in the implementing file.
For cythonization of "pure python" files, cython would need to recognize the (for python) special methods __eq__, __ne__, etc.; compile them properly, and provide a proper dispatching __richcmp__ for them. It wouldn't surprise me if that weren't available yet, especially because people can implement these __eq__ functions etc. with all kinds of decorators.