Can old wallets redeem segwit outputs it receives? If so how?
So from this, it naturally follows that old non-segwit wallets should not be able to spend segwit transactions.


That is correct. A wallet that does not know anything about segwit will be unable to construct a valid transaction input that spends a segwit output.

However, the premise of the question


  when an old wallet receives a segwit transaction meant for it


doesn't make sense either. If a wallet does not know about segwit, it will never construct a segwit address to give out. So, by definition, there cannot be any segwit output meant for it.

It is always the receiver who decides what exact outputs to accept money on - and this is what gets encoded into an address.