I think the problem is in the averaging weight and trying to apply it to every pokemon of that type. Remember that Pikachu refuses to go into the pokeballs, and so he walks a lot and thus is likely to be fitter and slimmer than an average Pikachu which dwells inside pokeballs all day.
Also there is a matter of age. I'm not sure if pokemon of one type are supposed to be born, live and die never changing their weight, but it would seem counter-intuitive, as they're supposed to be living creatures, much like animals.
Those weights could be either averages of wild pokemon prior to capture and at their fittest, or after having lived a few years of lazy pokeball life. I don't think anyone has explained it in depth.
Not entirely serious, but consider these images:
Pikachu's game sprite and anime depiction have changed over the years: