LinkTarget should provide an easy way to check whether two link targets are the same.
Well, it's an interface so it shouldn't assume that the implementation is always the same (and at least during the transition from Title to TitleValue it might not be). Also even if the two objects are of the same type, pure object comparison is not really reliable: === will differentiate between two instances of the same title, and == will do a recursive field equality check which might fail if e.g. comparing a fully loaded and a not fully loaded Title.
Currently, Title::newFromLinkTarget( $left )->equals( Title::newFromLinkTarget( $right )) seems to be the only safe way to compare, but that's a bit of a hassle. (Granted, changing an interface is a hassle, too.)