Los bloques vacíos es algo que ha pasado desde el principio y entender el por que pasa es algo complejo, pero desde mi punto de vista es una forma de auto-protección de la cadena de bloques para evitar que la misma transacción obtenga su primera confirmación en diferentes bloques.
Por ejemplo, Juan mina el bloque 105 y un segundo después Pedro mina el bloque 106... Si juan y pedro incluyen la misma transacción en cada uno de sus bloques esto representaría un conflicto en la cadena de bloques, es por esto que mejor se deja el bloque de Juan vacío mientras que el de Pedro se llena a tope de transacciones.
Yo sabía de la existencia de los bloques vacíos y asumía que tenía algo que ver con la actividad de los mineros al incluir solo la transacción de recompensa en uno de sus bloques encontrados.
Pero lo que dices tiene algo de sentido, porque muchas veces he visto que en la mempool se da el caso de bloques que se minan casi al mismo tiempo (a pocos minutos de separación). Creo que conflicto entre los nodos dependería de la latencia entre todos ellos para la sincronización con la red.
La explicación no me convence del todo porque al final aunque se pueden aplicar las leyes de las probabilidades a la minería (conociéndose la dificultad, el hashrate, para calcular el tiempo promedio). ¿no es la minería en si de naturaleza azarosa?
En teoría la posibilidad de un conflicto como ese siempre estaría presente, aunque fuese pequeña.