The only time an empty block MUST happen is the very very rare times mempool is empty. Aside from that, generating empty blocks is a conscious decision made by the operators of certain large pools. They are not a random event that any pool might do in the course of normal operations.
This is a misconception spread by Kano to advertise his pool.
Empty blocks MUST happen regardless of everything else, I can go with the technical explanation of why must they happen, but since I have already explained that I'll refer you to
aantonop.
<massive snip regarding SPV mining>
which is a subject wholly off-topic here. The fact remains that it is up to the pool operator to decide to use it or not. Kano does not.