Se supone que una estructura con hash, al mover e insertar estas moviendo directamente los datos lo que es una penalización al tiempo de ejecución y a la estructura en general ya que al acabar de mover, la estructura estará desordenada y para ordenarla de nuevo hay que mover directamente los datos otra vez.
En cambio, en una estructura con punteros a datos, si eliminas o mueves uno, sólo hay que actualizar la dirección de memoria donde apunta el y los que se ven afectados por la ordenación posterior.
Respecto a la eficiencia, si buscas un dato en una estructura hash y lo encuentras, ahí lo tienes sin más. En cambio en un árbol de punteros, primero lo encuentros y luego haces un acceso adicional para encontrar el dato en la dirección que indica el puntero.
Creo que es eso a lo que te refieres...
Saludos,