You can compress comment objects down to HASH( author + permlink ) and check for existence, potentially using a bloom filter to detect non-existence. Memory access patterns can also be optimized.
The reality is that a single vote normally results in 0 payout and incurs a cost both at the time it is voted and later when it is rejected for insufficient payout.
We know that 99.85% of all votes (by rshares) are cost within 7 days. We also know that 99.5% of all votes (counted equally) are cast within 7 days. Actual usage shows that old posts don't get votes. In fact, we could get 99% of all votes within 3 days based upon actual data since HF 16.
This is a circular argument based on the current rule set (and UI). It can't be used to evaluate a different proposed rule set.
A similar (bogus) argument would be that comments only get 1% of rewards therefore rewarding comments isn't needed.
If it would be easier to find/filter "old" contend, then they would get MUCH more votes... The same would be true if the system would give more rewards to curators of posts older than 24 hours... So many gems not "mined" yet! Why throwing cement above our rich property ?
Old posts don't get votes because they don't feature. They are hard to find.
UI needs an advanced search page, by the way :)
Of course 99% occur in that time window.... who wants to waste today's voting power on something that will get paid out in 27 days at probably .001 SP?