I would say that they are not designed to do the same things. ASA have powerful CPU so that can handle large numbers of packets with very large/complex access-list. Newer version of IOS can do stateful inspection but it's cpu intensive.

ACL (used for ip filtering) on router were originally designed to filter network to network flow using only short access-list. This works on the ASIC and is very very fast. Today you can do more powerful filtering but it will need to be done on the CPU and a router's CPU tends to be less powerful than that in a firewall.

So I would use short ACLs on routers handling large amounts of traffic, which will run on the ASIC. I would use complex ACLs (CBAC & cie) on a router that will only have small amounts of traffic to filter. But I would use an ASA to filter traffic from one network to another because you will need large and complex ACLs that won't run on a router ASIC and will be passing too many packets for the router handle that with it's CPU.


Stateful filtering. Routers ACLs are (for the most part) stateless, which is a pita.