Acho que este link explica os dois módulos detalhadamente.
Em resumo, o módulo limit
coloca um limite no número de vezes que uma regra pode ser correspondida. O módulo recent
permite criar uma lista dinâmica de IPs e, em seguida, usar essa lista para corresponder em outras regras de forma diferente (fazer NAT especial, negar acesso, etc.).