Although there is special code for creating identifiers based on ID or class, they don't change the behaviour of findCommonSubsets, as roughlyEqual gives the same result (true) for comparing <p id="foo"> with <p id="foo"> as it does <p id="foo"> with <p id="bar">.
The result is changing a document from
<p id="A"></p><p id="B"></p><p id="C"></p> to <p id="A"></p><p id="C"></p>
results in an overly complicated diff of
{"action":"removeElement","route":[0],"element":{"nodeName":"P","attributes":{"id":"A"}}},
{"action":"modifyAttribute","route":[0],"name":"id","oldValue":"B","newValue":"A"}