ComparisonChain just simplifies comparing multiple properties of two non-null objects in order. Since typically you call it something like:
return ComparisonChain.start()
.compare(getFoo(), other.getFoo())
.compare(getBar(), other.getBar())
.result();
you're obviously going to get a NPE if other is null.
It doesn't do any null or identity check. That's up to you if you feel the need to do them. If you avoid having null references in your collections or are using the chain with an Ordering with nullsFirst() or nullsLast() you don't need to worry about null. Identity doesn't seem like something you should really have to worry about much at all.