La strnlen calcola la lunghezza di una stringa "fino ad un massimo" di caratteri indicato.
Questo serve per "limitare" la funzione in modo che non vada oltre la fine del buffer se, per qualsiasi motivo, il terminatore della stringa non c'e'.
E' naturalmente un metodo per proteggere il codice da buffer overflow (voluti e non ...) e va usato SOLO se si vuole ottenere questa informazione da un buffer di cui si conosce sicuramente la grandezza massima ma non si sa se il contenuto puo' essere corrotto (come ad esempio un buffer in cui si ricevono dati dalla rete).
Ma nel caso di normale trattamento delle stringhe, la strlen per il C (o l'equivalente della string per il C++) vanno benissimo.
Non so in quale occasione ti sia stato evidenziata questo suggerimento da VC++ ...