Actually, I need to correct myself on a few things, mainly with the GBA. Unlike the NES, multiplayer on the GBA is dealt with the link cable, and a copy of the game on separate GBAs (or a copy of the multiboot version for the clients from the host GBA). The games themselves do not send over their entire "game state" to each GBA, but only the required data necessary for synchronization, since both process from their own data separately. That amount is much less than the 89x I suggested earlier, but it is still under the same idea of a "game state" from host to client.
However, both the NES and GBA have a thing in common when dealing with multiplayer. When data is required, data is received instantaneously, whether by everything under one roof (the NES), or via cable (the GBAs). WiFi isn't instantaneous from the standpoint of needing data that very moment, even if it is just a little bit of data. It has to go through multiple protocols that produce latency between devices. By the time that data does get to its destination, the devices have become out of sync. This isn't really a problem with emulated NES multiplayer via WiFi because everything is processed by the host, the game state is relatively small and can easily be sent off each frame as best as possible to the clients, and all clients do not deal with processing except for what they are given from the game state. Not exactly the same scenario with emulated GBA multiplayer via WiFi because each client+host do they own processing, which can mess with synchronization when data doesn't get to them when it is expected. If it were possible, we would have seen a wireless hardware solution that worked with all GBA titles, not just those programmed for it (which is what we got in the end with the GBA Wireless Adapter).
And here's a fun fact. Ice Climbers was one of the GBA NES Classics, which too had WiFi multiplayer via the GBA Wireless adapter, so it was almost expected that it would have it on the 3DS.