I still don't understand why full but non-mining nodes listen to transactions. The validity of the transactions are ensured cryptographically. So what advantage does it give to either me or to the network? What am I supposed to do with that info when I get a live transaction? In my understanding, a full node should only listen to new blocks, unless it is also mining at the same time.
There are multiple reasons.
Wallets Maybe the node operator also has a wallet, and is interested in seeing unconfirmed transactions that pay him. It's generally discouraged to have a business depend on irreversible actions taken based on unconfirmed transactions, but this is not true for everything. You could for example start preparing a shipping order as soon as an unconfirmed payment comes in, but verify that the transaction is confirmed before it actually goes out the door.
For fee estimation Maintaining a set of unconfirmed transactions in a way that lets you predict what will be confirmed in the near future (specifically, by running the same code as miners do) gives you insight in how fast network transactions with certain properties get confirmed. You cannot base this information purely on what you see in blocks, as that can be trivially gamed by miners (e.g. by stuffing their own blocks with a number of very high fee transactions).
For network propagation Modern block relay solutions (like BIP152 Compact Blocks, FBRP, FIBRE, thin blocks, ...) rely on the fact that most transactions in a block can already be known to the receiver ahead of time, if they maintain a pool of unconfirmed transactions. These protocols massively reduce the time needed to get a block relayed across the network.
Bitcoin Core since version v0.12.0 supports the
-blocksonly flag, which disables all downloading and relay of transactions. It comes with a bandwidth reduction, but also loses the benefits listed above.