It took me a while to find it, but the simple answer is no, it doesn't look like it.
Haste is calculated in
zone/client_mods.cpp:
Code:
1029 int Client::CalcHaste() {
1030 int h = spellbonuses.haste + spellbonuses.hastetype2 + itembonuses.haste;
1031 int cap = 0;
1032 int level = GetLevel();
1033 /*
1034 if(disc_inuse == discBlindingSpeed) {
1035 if(!disc_elapse.Check(false)) {
1036 h += 20; //this ammount is completely unknown
1037 } else {
1038 disc_inuse = discNone;
1039 }
1040 } */
1041
1042 if(level < 30) { // Rogean: Are these caps correct? Will use for now.
1043 cap = 50;
1044 } else if(level < 50) {
1045 cap = 74;
1046 } else if(level < 55) {
1047 cap = 84;
1048 } else if(level < 60) {
1049 cap = 94;
1050 } else {
1051 cap = 100;
1052 }
1053
1054
1055 if(h > cap) h = cap;
1056
1057 h += spellbonuses.hastetype3;
1058 h += ExtraHaste; //GM granted haste.
1059
1060 Haste = h;
1061 return(Haste);
1062 }
Just thinking out loud, the main issue with just adding a line at the bottom to check for quivers w/ weight reduction is that it would also apply the haste to regular weapons. Therefore, a check or separate function would be needed to see if it is a ranged weapon.
Hope this helps.