Working my way through the code, I've found some information about how the special weapon perks work. Most of the functions are complicated, due to the number of factors involved, so I haven't figured out the details yet, but I can definitively say where they are used.
Weapon Long Range, Scope Range, Accurate, and Night Sight are used only in _determine_to_hit_func .
Penetrate and Knockback are used only in _compute_damage .
Fast Reload is used only in _item_w_mp_cost . This function appears to calculate the AP cost of all uses of a weapon (primary and secondary attacks, plus aimed versions, as well as reloading), so it's a bit of a nightmare. Having Fast Reload makes it promptly return 1.
Flameboy is used only in _pick_death , so it apparently affects just the death animation, and has no effect on damage or anything else.
Enhanced Knockout is used in _attack_crit_success , where it makes any critical hit knock out the victim, in addition to the regular critical effects. It is also used in _correctAttackForPerks, where it gives very strong characters a miniscule chance of causing knockout with a non-critical hit. Chance is 2% with ST 10, 1% with ST 9, none otherwise. However, there are no weapons that use this perk in the unmodded game.
_ai_best_weapon checks if a weapon has a perk, but doesn't care which one. I presume this makes the AI assign additional weight to weapons with perks.
The armor perks are only directly used by _adjust_ac ; it immediately hands them to _perk_add_effect (or _perk_remove_effect). Regular and Hardened PA have the Powered Armor perk. APA has Armor Advanced I, and APA mk2 has Armor Advanced II. Combat Armor (regular and mk2), Brotherhood Armor, and Tesla Armor all have the Combat Armor perk. I think these all give bonuses to radiation resistance, as well as the ST gain from the various PA.
I'll update this as I decipher more of the functions.
Weapon Long Range, Scope Range, Accurate, and Night Sight are used only in _determine_to_hit_func .
Penetrate and Knockback are used only in _compute_damage .
Fast Reload is used only in _item_w_mp_cost . This function appears to calculate the AP cost of all uses of a weapon (primary and secondary attacks, plus aimed versions, as well as reloading), so it's a bit of a nightmare. Having Fast Reload makes it promptly return 1.
Flameboy is used only in _pick_death , so it apparently affects just the death animation, and has no effect on damage or anything else.
Enhanced Knockout is used in _attack_crit_success , where it makes any critical hit knock out the victim, in addition to the regular critical effects. It is also used in _correctAttackForPerks, where it gives very strong characters a miniscule chance of causing knockout with a non-critical hit. Chance is 2% with ST 10, 1% with ST 9, none otherwise. However, there are no weapons that use this perk in the unmodded game.
_ai_best_weapon checks if a weapon has a perk, but doesn't care which one. I presume this makes the AI assign additional weight to weapons with perks.
The armor perks are only directly used by _adjust_ac ; it immediately hands them to _perk_add_effect (or _perk_remove_effect). Regular and Hardened PA have the Powered Armor perk. APA has Armor Advanced I, and APA mk2 has Armor Advanced II. Combat Armor (regular and mk2), Brotherhood Armor, and Tesla Armor all have the Combat Armor perk. I think these all give bonuses to radiation resistance, as well as the ST gain from the various PA.
I'll update this as I decipher more of the functions.