I don't think, that is true. Looking at the last blocks, they all had transactions in them.
Could you show me one of this recent 0 transaction blocks?
Yeah it does happen occasionally. Though of course they have the 1 transaction, which is the coinbase one.
That is correct. There are no zero txn blocks because a block is invalid without a coinbase so people saying 'empty' blocks are referring to a block with just the coinbase txn. This will occur periodically due to the way that blocks are constructed. To understand why one needs to dig a little bit into what happens when a new block is found.
A pool server may have thousands of workers working on the current block when a new block is found making that work stale. The server needs to quickly update all its workers to 'new work' and the longer that happens the more revenue that is lost. If a new block is found on average in 600 seconds and it takes the pool just 6 seconds to update all its workers than its actual revenue will be 0.5% lower than its theoretical revenue. So pools want to update all their workers as quickly as possible to be as efficient as possible.
To update workers to work on a new block the server must remove all the txn confirmed in the prior block from the memory pool, then organize them into a merkle tree and compute a new merkle root. Part of that merkle tree is the coinbase txn which is unique for each worker (that is how your pool knows your shares are yours). A different coinbase means a different merkle tree and root hash for each worker which can be time consuming to compute. So to save time (and reduce stale losses) the pool server will compute the simplest possible merkle tree for each worker which is a single txn (the coinbase) push that out to all workers. Compute the full txn set merkle tree and then provide that to workers once they request new work. However if a worker solves a block with that first work assigned it will produce an 'empty' (technically one txn) block.
This is just one example of how a 1MB limit will never achieve 1MB throughput. All the numbers in the OP assume an upper limit which is the theoretical situation of 100% of miners producing 1MB blocks with no orphans, inefficiencies, or stale work. In reality miners targeting less than 1MB, orphans, and inefficiencies in the network will mean real throughput is going to be lower than the limit. VISA only has an average txn capacity of 2,000 tps but their network can handle a peak traffic of 24,000 tps. Nobody designs a system with a specific limit and then assumes throughput will be equal to that upper limit.