I love all of those ideas, as I was considering adding code for recoil (abandoned) and penetratiom as well, but both would require quite the codebase change. But I was beginning work on it regardless.
May have to be a 2.5 version.
The Penetration scaler wouldnt require a major code change, unless the coding is really bizarre already compared to what im thinking it is.
When you go to do the Damage vs. Armor check, . . . check to see if the ammo has a Penetration Scaler (IF/Then). If so apply the inverse of it as a multiplier to Armor Value before testing vs Damage (1/Scaler, and also check to see if the value is something ludicrous to avoid divide by zero, anything lower than 0.01 and it doesnt bother). You dont need to run another function, this could be tucked neatly into the existing one.
Thus if something had a 0.5 scaler (crappy penetration) your code would apply a 1/0.5 = 2x multiplier on the Armor Value before the damage is tested against it.
So it doesnt touch the Damage Scaling side of the equation (eg, damage types and so forth).
As for the Mod itself . . . some modern weapon considerations . . .
(I know alot about guns)
* Replaces Standard Pistol . . .
Glock 20 Longslide in 10mm Auto (hits like a .357 magnum). The caliber .40s&w and .357sig were patterned after the 10mm auto because the pu$sies at the FBI complained about the recoil, so they gave them a weaker dumbed down 10mm (the .40s&w). But Spec Ops would not care.
https://andrewmoreland.com/Toyota/pics/lodge/Glock_20L_and_29.jpg15 rounds @ 30 damage.
* Replaces Standard Rifle . . .
Kel-Tec RFB bullpup rifle in .308 caliber - easy to use and accurate but no auto fire. Yes folks that standard size rifle there is a .308.
https://www.onpointsupply.com/images/keltec_rfb_fde_2.jpg20 rounds @ 36 damage.
* Replaces Auto-Cannon . . . SRM-1216 shotgun (yes its real, not just a COD weapon)
https://files.tactical-life.com/wp-content/uploads/2011/12/srm-1216.jpg16 rounds @ 40-45 damage range. (armor piercing slugs, and explosive rounds)
With Auto Fire, because anyone using it would be trigger happy.
(should have a 20 square falloff for accuracy)
* Replaces Heavy Cannon . . . 6-Pak Grenade Launcher (40mm grenades).
6 shots @ 50 damage (or 60 for Hellhound grenades, which weigh 2 more pounds for the ammo pack, like a "Large rocket" version of ammo for the Cannon).
* Assault Rifle / SMG Role . . . AAC Honey Badger Compact (suppressed, subsonic rounds).
30 shots @ 30 damage.
easy and accurate burst fire, 2x3 weapon size but weight is 4.
* Sniper Rifle role . . . AR-15 Rifle with .458 SOCOM upper. (this thing is beautiful)
https://www.gunsandammo.com/files/2012/01/458-SOCOM1.jpghttps://files.tactical-life.com/wp-content/uploads/2012/01/tomahawk-cqtc-458-socom-c.jpghttps://shwat.com/Portals/0/Images/BlogPics/Wilson/458/size-matters.jpg9 rounds @ 40-45 damage range.
(as for long distance shooting, how many Xcom missions do you actually need 1000 yards of range? Accuracy for a "sniper rifle" in Xcom should be about Handling and Secure Target Acquisition rather than long distance fire. As for damage those .458s are practically as big and heavy as a .50bmg, its like getting hit with a shotgun slug but with much better range - this thing can reach out reliably to 300 or 400 yards)
(alternatively there is a new version of the Dragunov SVD which is chambered in 9.3x64mm, and it would fit the bill nicely)