Belts are classed as Whip category weapons so yes they do make good weapons. Much better than any other piece of armor which use the Misc weapon category and suffer as a result.
As for dex training and the belt of carrying being better, I'll go take a quick look at the code now.
EDIT:
Done my research!
The belt of carrying isn't a better weapon than a regular belt by default. All of its physical properties are identical to a regular belt, which means that it will have the same combat abilities.
It was probably only a better weapon because all belts of carrying spawn enchanted to +1.
As for whether they train dexterity better than whips... well there's no hard-coded bonus or anything but my research so far is leaning towards
yes!
Blocking trains DEX. Blocking is heavily influenced by the Roundness and Size properties of an item - higher is better. Belts have a block modifier of
3000 whereas whips have a block modifier of 840 -
belts are much more likely to block (parry) which means more chances to gain dex experience.
Combat also trains DEX.
According to the code, you get the same amount of experience regardless of whether the attack misses, is dodged or blocked/parried so tohitvalue isn't really important for what we're investigating here (belts have higher to-hit btw).
However the amount of experience you get is influenced by a weapon's weight value using the following formula:
DexExp = Weight ? Limit(75000 / Weight, 75, 300) : 300;
The Limit function places a
limit (duh) on how much DEX experience you gain from a swing. The EXP gained must fit between 75 or 300, otherwise it defaults to 300.
For belts that's:
DexExp = 200 ? Limit(375, 75, 300) : 300; //(leather belts always get 300 exp because they exceed the limits)
And whips:
DexExp = 420 ? Limit(178, 75, 300) : 300; //(leather whips will only get 178 exp per swing because they do not exceed the 75 minimum and 300 maximum limits)
Which strongly suggests that yes!
Belts do train DEX faster than whips in every way!
Things might get a little more dicey with the higher tier materials however - might drive the limits over for whips, or under for belts. But I am not going to go do any more digging there.
I figured I'd also look into damage for belts and whips while I was here.
This largely depends on GetWeaponStrength, with (most) other factors depending on player stats etc.
I'll just post the equations:
Leather belt:
return GetFormModifier() * GetMainMaterial()->GetStrengthValue() * sqrt(GetMainMaterial()->GetWeight());
5 * 20 * sqrt(weight)
5 * 20 * sqrt(200)
5 * 20 * 14 = 1400 weapon strength
This translates to
0.265 base damage.
Leather whip:
return GetFormModifier() * GetMainMaterial()->GetStrengthValue() * sqrt(GetMainMaterial()->GetWeight());
10 * 20 * sqrt(weight)
10 * 20 * sqrt(420)
10 * 20 * 20 = 4000 weapon strength
Which is
0.447 base damage.
Whips are obviously the stronger of the two.