We compare locations rather than xblocks elsewhere, and when I had was comparing xblocks directly, I hit a case with a conditional usage where xblocks were not equal, even though they had the same location. I'm not sure what an xblock instance uses to determine equality, but we know that if locations are equal, we should consider them to be equal.