Why can't we expire two year old transactions? I understand any output in blockchain can be left un-redeemed forever. But If we expire all transactions that are more than two years old (specifically after some number of blocks), there are some benefits


Recycle lost/destroyed bitcoins by giving them back to miners
Miners will continue to get more transactions and thus more fees
Number of unspend transactions may become less speeding up verification
Size of blockchain to keep downloaded can be minimized
Broken cryptographic hahes/signatures can be made obsolute
New features can be easily introduced


Are there any alt coins that consider these? What are the advantages of keeping all transactions valid since genesis block?
One big reason against this sort of thing is that it creates a huge incentive for bad people to try to prevent you to do transactions (censor you). 


If miners get the "lost" bitcoins they might simply refuse transactions with coins that are almost expired hoping to get a bigger reward later. 
If miners don't get them but they are truly lost forever, then there is an incentive for big stakeholders to try to do the same thing: less coins means the value of everyone else's coins goes up.
It gives governments and other mafia huge power: don't want to comply? We'll just lock you up for 2 years and make your coins expire. Or more "humanely" use other censorship tricks (hacking/digital censoring) to prevent you from spending your coins before they expire.


Another reason is that people will en mass set up automated scripts to move all their coins regularly, which is a big security (and privacy) risk. It's much easier to keep private keys safe (on a piece of paper in a vault) than it is to keep an internet connected system powered up and safe 24/7.