One thing that bothers me in this realism simulator is that weapons with very short barrels, such as the G36C and XM8 Compact, produce the same velocity as an M16A4.
The game features differening velocities based on what magazine is loaded, as opposed to a more realistic solution of basing it off of what weapon is being fired and what ammo it is firing. This is represented properly in ACE, but I think the system should be represented in ArmA 2 or Operation Arrowhead as well.
30-Round Stanag, 5.56x45 M855 Ball
M16A4 Velocity = 945ms
M4A1 Velocity = 885ms
30-Round G36, 5.56x45 M855 Ball
G36K + XM8 Velocity = 850ms
G36C and XM8 Compact Velocity = 770ms
20-Round Stanag, 5.56x45 Mk262 OTM
Mk12 SPR Velocity = 850ms
That's another point I want to bring up - it is unsafe to fire the Mk12 SPR with standard M855 Ball or any other ammo that is not Mk.262 OTM. However, in ArmA 2, it fires M855, which not only makes it unrealistic but also much less lethal and less accurate than it should be.
Anyhow, what with Operation Arrowhead including many more short-barrel weapons (SCAR CQC) I think it'd be a good step in the right direction to simulate varying muzzle velocities with changes in barrel length, just like in real life.
Here are some numbers on 5.56x45 just for reference. Obviously barrel length also affects velocities of other cartridges.
M16A4 + XM8 Sharpshooter + XM8 LMG = 945ms
M4A1 = 885ms
G36 + MG36 = 930ms
G36K + XM8 = 850ms
G36C + XM8 Compact = 770ms
Mk.16 Standard = 870ms
Mk.16 CQC = 800ms
M249 SAW = 970ms
Mk12 SPR + Mk.16 Long = 850ms
XM8 Sharpshooter = ~875ms