SPV clients and full nodes
Is this the way things actually happen?


Yes


  If yes, then my question is then why can't the full node simply do the following: (1) send its UTXO set to the SPV client; (2) SPV client then filters the UTXOs of its interest and put those UTXOs in its own UTXO set. 


The UTXO set is large and a proof for every UTXO would be required. Proofs for every UTXO would be expensive to build and an extremely large amount of unnecessary data would be sent over the wire thus consuming network bandwidth that could be better used elsewhere.