Eu diria que eles não são projetados para fazer as mesmas coisas. O ASA tem uma poderosa CPU para poder lidar com um grande número de pacotes com listas de acesso muito grandes e complexas. A versão mais recente do IOS pode fazer inspeção com informações de estado, mas é muito intensa.
O ACL (usado para filtragem de ip) no roteador foi originalmente projetado para filtrar a rede para o fluxo de rede usando apenas uma lista de acesso curta. Isso funciona no ASIC e é muito rápido. Hoje você pode fazer uma filtragem mais poderosa, mas ela precisa ser feita na CPU, e a CPU de um roteador tende a ser menos poderosa do que em um firewall.
Portanto, eu usaria ACLs curtas em roteadores que lidam com grandes quantidades de tráfego, que serão executadas no ASIC. Eu usaria ACLs complexas (CBAC & cie) em um roteador que terá apenas pequenas quantidades de tráfego para filtrar. Mas eu usaria um ASA para filtrar o tráfego de uma rede para outra porque você precisará de ACLs grandes e complexas que não serão executadas em um ASIC de roteador e passarão muitos pacotes para o identificador de roteador com sua CPU.