think of it like every 1000 blocks gets the entire utxo set put into it.
Probably it should be done in every block. Also, it should not be put directly into block data, but it should be just a commitment instead.
what would you need older blocks for in that case?
Because if the real commitment is:
Alice 1.00 BTC
Bob 2.00 BTC
Charlie 3.00 BTC
Then you can easily mine a block with fake commitment, for example:
Dave 4.00 BTC
Elaine 5.00 BTC
Frank 6.00 BTC
It is exactly the same problem as putting a fake sidechain commitment, and withdrawing coins from a sidechain to different addresses.
you'll probably say "for verification". verfication of what?
If you don't know the history, and you only know the UTXO set, then you don't know if "Dave 4.00 BTC" entry is fake or not. You have to locate that entry in some previous block, and validate it. Also, as you cannot trust the previous block either, you have to go to the previous block of the previous block. And by going recursively, you will end up in a situation, where to be 100% sure that all UTXOs are real, you have to verify everything from the Genesis Block.