One thing to note is that the class that I have seen that buffs the most is the medic. Engineers almost never buff other people weapons (from personal experience), I rarely get ammo from soldiers (personal experience)... So no wonder you guys feel like medics earn exp too fast, start buffing and you will get up there too very fast.
Medics can have more supply pips than any other class, and their 'buffing' also doubles as healing, so they dont have to be overly conservative with it.
Engineers dont get the extra supply pips medics do, and in addition to buffing we also have to use our supply for mines and turrets. It's more risky for us to just toss out buffs because we have to conserve supply for those other abilities. At the beginning of a match, I only have enough supply to buff four people, and one of them is most certainly going to be myself. That also leaves me with no supply at all until a good 30-45 seconds into the match - on attacker maps this is fine, but if we're defending I'm usually more conservative with buffing early on because it's more important to set up a turret and mines near the objective.
Soldiers are the only class with a buff that gives experience based on the amount of ammo you restore, rather than just a set amount (medic heals always give 75 xp, as do rezzes, engineer weapon buffs give 75, kevlar armor gives 50, but soldiers can get up to 150 or more points by resupplying ammo to a player that has none and is near an objective). I have noticed that very few soldiers ever give out ammo, however... there's no logical reason for this, other than that maybe the soldier is using up all of his supply by restocking his own ammo and spamming grenades ( a soldier can easily go through 4 supply pips in only a couple seconds, just using grenades, and most soldiers do love to spam them).