Hay un beneficio de seguridad al proporcionar mensajes genéricos que no se han mencionado.
Alice está tratando de forzar una cuenta en el servidor de Bob. Para los primeros intentos, Alice recibe el mensaje "Falló el intento de inicio de sesión". En el siguiente intento, obtiene "Demasiados intentos de inicio de sesión de esta dirección IP". Ahora sabe que (a) todas las credenciales que probó hasta este momento no eran válidas, y (b) necesita hacer algo diferente antes de hacer más intentos.
¿Pero qué pasa si Bob no cambia el mensaje? Alice continuará con la fuerza bruta y continuará obteniendo el "intento fallido de inicio de sesión" genérico en cada intento incluso si las credenciales son correctas . Si sucede que ella intenta las credenciales correctas, Bob rechazará el intento porque se ha excedido el límite de IP, pero Alice no sabrá que esa es la razón y tendrá que tratarlo como un intento incorrecto (a menos que tenga otros forma de saber cuál está más allá del alcance de esta pregunta). Su única opción es continuar con la búsqueda, sin saber si ella ya ha localizado y ha pasado las credenciales correctas.
Tenga en cuenta que este beneficio es seguridad a través de la oscuridad ya que confía en que Alice no sepa la política de bloqueo de IP de Bob. Dependiendo de la configuración, esta información puede ser trivial de obtener. Por ejemplo, si Alice tiene acceso a otra cuenta en el sistema (fácil si acepta el registro de una cuenta pública), entonces puede usar prueba y error para ver si un intento correcto finalmente es rechazado después de demasiados intentos incorrectos.
Otras respuestas han explicado la compensación entre la seguridad y la usabilidad, por lo que no me molestaré en repetir eso.