JsonReader uses UUID.fromString to parse values in $uuid extended JSON, e.g.
{"_id" : { "$uuid" : "73ffd264-44b3-4c69-90e8-e7d1dfc035d4" }}
However, UUID.fromString is more permissive in its parsing than what is strictly allowed by the grammar documented in UUID.toString. In particular, it doesn't require that the hypens appear in the write place. The result is that two otherwise identical strings that differ only in hyphen placement will parse to different and unequal UUID values.
In scope of JAVA-3959, a spec test is being added for this case, and without tightening up the JsonReader parsing code, the driver fails the test.