well, to be fair, you can do the same thing with a jezzail, it just takes slightly more time (and shields piss you off slightly more).
I would be in favor of greatly increasing 'free reload' time(maybe once per 10 minutes or more on the field, at least 5 minutes in siege), but giving dedicated archer units 2 sets of arrows (and bolts if thats required). As well, decrease bolts/cannon ammo to slightly lower levels (say around 10 solid shells?)
Thus, most AI units stay similar (archer units might lose their shield if they had one, but have bow/arrow/arrow/2hand), but the player is required to carry more ammo if he wants to keep doing this... and even then, probably required to wait it out (i can fire MAYBE 10/shots per siege reload off a siege handgunne, so carrying around 10 solid shells per set would mean he can have 6 minutes straight of firing time at most, coupled with a 4 minute wait.. Of course, if he has a shield, he spends considerably more time waiting.. shield and sword? even more time!)
Also, can scripts or something detect damage settings? If so, you should totally change the players health based on what setting he is on (on 1/4 damage, he loses 3/4 of health, on 1/2, he loses half, on full damage, he gains 20%

)
as per killing tons of people by yourself..... well, go on siege defense vs 2500 people, and carry a siege handgunne. Its fairly easy to kill 20 people a shot if your battlesize is big enough.