TL; DR: Su fórmula es demasiado simple.
Entonces, el problema es por qué "" tiene una entropía si es 0 con su fórmula, pero MD5 ("") no tiene 0.
Como ya se dijo en los comentarios, su fórmula solo funciona si los datos son perfectamente aleatorios (distribución uniforme, todos los bits independientes, etc.).
Ejemplo para un caso aleatorio: el cálculo de su PIN con 4 dígitos entre 0 y 9.
Pero si tienes por ejemplo. algún valor que puede ser 2222 o 7777 y nada más, la entropía es solo de 1 bit. Todavía hay 4 dígitos, pero la mayoría de los números de 4 dígitos no son posibles, por lo que su fórmula ya no funciona.
Lo mismo es cierto para su hash: el hashing de una cadena de 0 longitud da exactamente una salida, siempre la misma. No 256 ^ 16 posibilidades que pueden tener hashes de 16 bytes.
Una mejor fórmula:
H(X) = sum (-p[i] * log2 p[i])
donde p[i]
es la probabilidad del i-ésimo valor posible (no un dígito, sino un valor, su PIN tiene 9999 valores posibles y cada uno tiene su propia probabilidad).
Con esta fórmula y el único valor hash posible, también obtienes 0.
En general, un hash como este nunca puede aumentar la entropía. Puede ser igual o menor que el del valor original (menos especialmente si los datos son más largos que el hash, es decir, el hash tiene menos valores posibles)