Let's say your colours are black, white, green and purple. So far, you've managed to use only black and white, but you've reached a node with both black and white neighbours. You need (are forced) to choose a different colour! You could choose green, or purple – and whatever solutions you reach from that point, you could swap all the greens and all the purples to yield another solution. However, the
next "free" choice you make could be the same colour as you chose last time, or a different one, so it
is actually free (so isn't forced).
Since the "swap green and purple" operation is bijective (a one-to-one, reversible mapping), and preserves all the properties we care about, we can call it an isomorphism. If there's an isomorphism between two solutions, we say that those solutions are isomorphic. Swapping all the greens and purples of any isolated region of the graph (i.e., one surrounded by a strip of black and white) is an isomorphism, if the only property we care about is "is this a colouring of the original graph?".
I was saying it's pointless to search isomorphic solutions if you can help it. If you have isolated regions of the graph yet to be filled, you can halve the time it takes to explore each region's possible colourings.
However, if you consider isolated regions completely separately, you can solve them one after the other (and backtrack once you know any region's been made impossible by the choices of colours in its border), for a much larger speedup.
The whole thing about isomorphisms was a red herring, an artefact of my thought process rather than an actual insight. I doubt trying to exploit this will net you anything more than a 2× improvement, and that's only if you do it cleverly.