¿Ocupa más? Creo que son 5 bytes ambas, ¿no?
Eeeem... no se por qué me había empeñado en que 
add hl,hl ocupaba dos bytes... 

He dejado el tema del DJNZ para poder hacer multiplicaciones por potencias de dos entre 2^1 (2) y 2^15 (32.768).
Nada, nada... eso se puede arreglar como sigue:
HLPOR32768: add hl,hl
HLPOR16384: add hl,hl
HLPOR8192:  add hl,hl
HLPOR4096:  add hl,hl
HLPOR2048:  add hl,hl
HLPOR1024:  add hl,hl
HLPOR512:   add hl,hl
HLPOR256:   add hl,hl
HLPOR128:   add hl,hl
HLPOR64:    add hl,hl
HLPOR32:    add hl,hl
HLPOR16:    add hl,hl
HLPOR8:     add hl,hl
HLPOR4:     add hl,hl
HLPOR2:     add hl,hl
            ret
Rutina que ocupa 16 bytes y es más rápida que el bucle 

Evidentemente, si lo que quieres es velocidad, como dice Sap, hay que desenrollar todos los bucles al máximo.
cuanto más mejor 

 Podríamos resumirlo en la siguiente máxima: "para llegar antes no hay que enrollarse" 
 
  
 