Is it permissible to draw conclusions about the equality of the contents of strings based on the equality of their hashes?
In general, hashing is not a one-to-one mapping, that is, one cannot argue that two different strings will give two different hashes. Take for example MD5 hash. The input is a string of arbitrary length. The output is a 128-bit hash. Thus, the input is infinite, and the output is finite. Obviously, in an infinite set there are an infinite number of lines that will give the same hash.
No, unequivocally on the basis of comparing caches, one can speak of the inequality of objects with the inequality of caches. The coincidence of caches speaks about the likely equality of cached objects, so you need to check their equality directly.
Of course. Equality of hashes means binary equivalence of the contents of strings. Naturally, for lexicographic comparison hashes will not work.
Considering comments on collisions, I note that the hash function must be carefully selected.