Hola, no veo mucha diferencia, segun el manual de php
mysqli_affected_rows()
Cita: Devuelve el numero de filas afectadas por la última consultaINSERT, UPDATE, REPLACE or DELETE.
Para instrucciones SELECT mysqli_affected_rows() es equivalente a mysqli_num_rows().
asi que no haty limitacion en esa extension
Haces una consulta (SELECT) contra el campo usuario y si el mysqli_num_rows(). es mayor a 0, es que hay al menos un usuario registrado con ese nombre.
Saludos