It can't. If for some reason your transaction never gets confirmed, it will eventually disappear from the network and you will be able to spend your coins again. So yeah, it will return to the sender.
How likely is it that a transaction with zero fees will "eventually disappear" from the network?
Each time you perform a transaction, what happens when you finalise your spend is that your wallet software broadcasts your transaction to the Bitcoin network, where it sits in the mempool waiting to be picked up by miners.
How long it stays there isn't really deterministic on the fee you specify. BUT because each block has a limited size, miners will naturally want to fill it up with transactions that will earn them the most fees (again a generalisation but evidenced by the fact that zero-fee or low-fee transactions do tend to stay longer in the mempool as miners will prioritise those with higher fees).
Now, most wallets will continue broadcasting your tx for as long as you keep them open, for as long as it remains unconfirmed. So, for your transaction to "eventually disappear", it has to stop being broadcast so the network simply drops it. To my knowledge, this is very difficult to do (stop broadcasting) if you're using an online-based wallet. I use Electrum, and even without the wallet broadcasting, I've seen txs stay for over a week.
I'm sure someone will have a more precise explanation, but in practice, I'm very certain that waiting for txs to get dropped from the network is at best a long waiting game.