For long running nodes, the signature cache is also very helpful. Over time, transactions are accepted into the memory pool and signature cache.
I do not yet see how the signature cache actually helps, would you please elaborate?
A signature is a function of the hash of a modified version of the input transaction. The modification depends on which output of that transaction is to be spent. Aren't chances of seeing the same signature twice negligible?