потому что это два разных объекта
Скорее не так. Если объекты представляют собой data-модели (case-классы в скале, data-классы в котлине), то у них должны быть переопределены hashCode и equals, если это объект какого-нибудь класса-менеджера, то не нужно переопределять.