The BF engines (from 42 onwards) have a number of numerical variables to change how weapons feel. It would be quite possible (and in some cases both realistic and sensible) to manipulate these to change how the weapons feel.
Some examples would be:
- Speeding up the "draw" time, to make it quicker to switch between weapons. Easier to handle weapons are quicker to draw than clunkier ones.
- Lowering the "fire RATE" deviation - so that easier to fire weapons can fire rapidly (on full-auto, for example) for more shots before the deviation becomes too high to hit anything (great for CQB)
- Changing the "MAX fire deviation" for different stances (prone, standing, crouching), so that the absolute maximum innaccuracy a weapon can have due to movement, constant fire (full auto), poor stance, etc is lowered, even though the "base" deviation for it is high enough to make it useless for sniping
- Lowering the vertical recoil RATE for heavier weapons (heavier the weapon, less it can pull up on you), such as those with the under-slung grenade-launcher, bi-pods); lowering the horizontal recoil MAX for lighter weapons to reflect their ease of use.
- Lowering the MOVE deviation on lighter weapons designed for run-and-gunning, increase the TURN deviation for weapons that need more "sighting" time before popping off a shot.
- Increasing the projectile drop rate / travel time / damage bleed off for weapons with lower muzzle velocities (IE shorter barrels, among other factors) so they are less accurate and damaging at long range.
This is not by any means an exhaustive list of the variables that can be manipulated to significantly change the "feel" of weapons in action and make them feel distinctive and useful in different situations.