TL; DR: la tua formula è troppo semplice.
Quindi il problema è perché "" ha un'entropia se 0 con la tua formula, ma MD5 ("") non ha 0.
Come già detto nei commenti, la tua formula funziona solo se i dati sono perfettamente casuali (distribuzione uniforme, tutti i bit indipendenti, ecc.).
Esempio per caso casuale: il calcolo del PIN con 4 cifre tra 0 e 9.
Ma se hai eg. un valore che può essere 2222 o 7777 e nient'altro, l'entropia è solo 1 bit. Ci sono ancora 4 cifre, ma la maggior parte dei numeri a 4 cifre non è possibile, quindi la tua formula non funziona più.
Lo stesso vale per il tuo hash - hashing una stringa di lunghezza 0 dà esattamente un output, sempre lo stesso. Non ci sono 256 ^ 16 possibilità che gli hash da 16 byte possano avere.
Una formula migliore:
H(X) = sum (-p[i] * log2 p[i])
dove p[i]
è la probabilità dell'i-esimo valore possibile (non cifra ecc., ma valore - il PIN ha 9999 valori possibili e ognuno ha la sua probabilità).
Con questa formula e l'unico valore di hash possibile, ottieni anche 0.
In generale, un hash come questo non può mai aumentare l'entropia. Può essere uguale o inferiore a quello del valore originale (meno specialmente se i dati sono più lunghi dell'hash, cioè l'hash ha meno valori possibili)