If the testforblocks command is used at all the result is always 'Source and destination are not identical', even if you're comparing a block with itself
e.g. testforblocks ~ ~ ~ ~ ~ ~ ~ ~ ~
it's comparing the block the player/command block is in with itself, and the result is the same.
Fixed for a future version. MC-57870