From what I understand, the online system in Brawl was implemented for a few specific reasons that aren't really problems in the other games.
As I recall (correct me if this has been proven wrong or old info), the lag online is meant as an equalizer between the two (or more) players.
If the lag weren't in place, you'd end up with strange happenings such as phantom hits, or non-hits that seem should have connected to you. For example, when you play a shooter online, lag is what causes players to sometimes die to things that should have logically been just outside their ability to be killed by (getting headshotted after you run behind a wall that would give you definite cover).
The input lag is designed to send the signal for the input of the first player, then receive a signal back from the second player to comfirm that the input was sent correctly, and then execute it on both ends. In short, the input lag is so both players see the same fight.
As for the lag spikes, that's simply so that one of the clients that's going slower is able to catch up for those same checks between clients. If one client doesn't receive a signal back from the other confirming commands, the game will lag until it gets a signal back from the other player, again assuring both players see the same thing at all times.