Bem, primeiramente, vamos definir o termo "DDOS". Isso significa Negação de serviço distribuída , palavra-chave sendo distribuída. Se você limitar o número de conexões por IP, não importa, porque você tem cem mil endereços IP diferentes martelando seu sistema.
Então, você limita pelo tamanho da solicitação. Ótimo, como você distingue entre um cara F5ing e um nó em uma botnet?
Mas seja o que for, digamos que temos um algoritmo de análise comportamental mágica. Ataques DDoS procuram esgotar os recursos do servidor e garantir que a máquina não seja alcançável - lançar análises de dados complexas em um problema causado pela falta de recursos vai exacerbar o problema, não resolvê-lo.
O fato infeliz da questão é que, mesmo ignorando uma conexão leva alguns recursos. Você poderia pensar em procurar um serviço como o Cloudflare, que mistura cache para baixo uso de recursos por solicitação com (eu acredito) detecção de DDoS auxiliada por humanos, mas a reimplementação desse serviço provavelmente está fora do escopo da maioria dos projetos e aumentaria enormemente a complexidade.