i think the situation with empty blocks is a lot more complicated than zero fee transactions though. the tx situation is part fuller mempool and part default behavior of 90% of the nodes being minrelayfee>0.
but when it comes to empty blocks the reasons are:
- more usage which translates into more transactions in mempool for miners to pick up (eg. compared to 2009 with no one using bitcoin)
- little to no spy mining or at least a hugely improved way of doing it to avoid having an empty block
- increasing price which means even 1s/b fee transactions in a full block could be worth at least $350 or it could be a lot higher for example a block found an hour ago (643308) had $13,995.60 total fee.
- improved connections and internet speed and lower latency of mining pool nodes
- much smaller data to download from a new block thanks to BIP-152 (node basically downloads the header alone not the transactions since it already has them in its mempool).