Here is the reply I got from Kaven @Etherscan, in case it's useful for somebody else:
Contract that gets the “Similar Match” annotation has the identical
contract code (exact bytecode) with another contract (address
provided) that has been deployed on the blockchain. The “Similar
Match” annotation does not takes constructor argument into account.
Contract that has the same contract code but deployed with a different
constructor argument will get the “Similar Match” annotation. We
matches the contract code on our database and display “Similar Match”
to the contracts that matches with another contract.
As for “Exact Match”, this annotation is given to contract that is
verified by the owner with the exact constructor argument.