nLockTime transactions, how do they persist? Are they broadcast before they are valid? If nLockTime transactions aren't added to the blockchain until the nLockTime is met, then aren't they just being stored in memory of the miners and is there a risk they could get "lost"?

I guess I'm just wondering how a long term nLockTime transaction can really persist. If I set it for 1 year in the future, and everyone restarts their node at some point during that time, isn't there a chance the transaction get's lost? Or would this require all nodes restarting simultaneously? 

EDIT: Or are nLockTime transactions just held off network by the interested parties and then broadcast once nLockTime is reached? I read some things about DOS attacks with nLockTime transactions leading me to think that miners would not bother storing these at all in memory.
The release notes for Bitcoin Core (Satoshi client) version 0.9.0 states


  Accept nLockTime transactions that finalize in the next block


So it will just discard other nLockTime transactions. Since most miners run bitcoind or some fork of bitcoind, it is unlikely that an nLockTime transaction will persist for a long time.