A lot of WiFi hardware implements a substantial portion of the stack in firmware or driver blobs.
So even "the same few chips" can be manipulated to perform very differently. Stuff like retransmit, frame timing, power/gain control, and even tx/rxchain selection and MIMO configuration are often done in software and can be altered between suppliers. Additionally, vendor drivers often perform very poorly at the higher levels as well - the MAC level (associate/beacon/disassociate), the framing level, scheduling encryption/decryption, keeping track of associated clients, and so on, are also all often handled in software and can be optimized.
Plus, once we reach the router level, we also get into the often abysmal IP stack configuration on consumer-grade routers.
In short, there's a lot that can differ, both in IP-land and in chipset-land. Anyone who's "fixed" an ailing consumer router firmware by reflashing it with something else can understand the IP-land pieces, and a quick read through a driver written on the Linux SoftMAC stack (for example) can really illustrate how much goes on at the driver layer (not to mention firmware).
So even "the same few chips" can be manipulated to perform very differently. Stuff like retransmit, frame timing, power/gain control, and even tx/rxchain selection and MIMO configuration are often done in software and can be altered between suppliers. Additionally, vendor drivers often perform very poorly at the higher levels as well - the MAC level (associate/beacon/disassociate), the framing level, scheduling encryption/decryption, keeping track of associated clients, and so on, are also all often handled in software and can be optimized.
Plus, once we reach the router level, we also get into the often abysmal IP stack configuration on consumer-grade routers.
In short, there's a lot that can differ, both in IP-land and in chipset-land. Anyone who's "fixed" an ailing consumer router firmware by reflashing it with something else can understand the IP-land pieces, and a quick read through a driver written on the Linux SoftMAC stack (for example) can really illustrate how much goes on at the driver layer (not to mention firmware).