Por que reimplementar strlen como loop + subtração?

Inspirado poressa questã sobre o seguinte código do SQLite3:

 static int strlen30(const char *z){
    const char *z2 = z;
    while( *z2 ){ z2++; }
    return 0x3fffffff & (int)(z2 - z);
 }

que é acompanhado por umcommit message dizendo que esta função ajuda comint estouros.

Estou particularmente interessado nesta parte:

 const char *z2 = z;
 while( *z2 ){ z2++; }

para mim esse loop avançaz2 atéz2 aponta para o terminador nulo. Entãoz2-z produz o comprimento da strin

Por que não usarstrlen() para esta parte e reescreva assim:

return 0x3fffffff & (int)(strlen(z));

Por que usar loop + subtração em vez destrlen()? O que loop + subtração pode fazer o questrlen() não pode?

questionAnswers(2)

yourAnswerToTheQuestion