Как связаны hashcode() и compareTo()?
В случае compareTo() мы не просто сравниваем два объекта, мы еще даем им "вес" (больше, меньше), по-этому, я считаю, не совсем корректно использовать результаты hashCode в вычислении данного "веса". Хотя если автора все устраивает, и, допустим, коллекции таких объектов сортируются именно так, как он задумал, то не вижу проблем с этим. Главное тестами все покрыть.
нет. из-за коллизии может быть неверное сравнение.