I am not sure the RoF works as described though (that having 12 RoF will mean 12 shots taken). I think it is more of a modifier, which will affect the chance of the gun taking another shot. Something like: Gun will take another shot if random(x)*Previous shots < 10 + RoF.
So the German LeFH 18 105mm gun with a RoF of seven would get a second shot if random(x) < 17 and a third shot if random(x) < 8.5.
Meanwhile the 20mm Quad (FlakVierling, I think it's nicknamed) with a Rof of 400 would automaticaly get 40 shots off before even a roll of 10 would stop it from firing again. Quite deadly against infantry in the open.
This also fits the guns with a negative RoF. The German 600mm Geraet 040 mortar has a RoF of -10, making it impossible for that gun to get off more than one shot pr combat if using the above formula. If simply assuming the RoF is the number of shots taken in combat, this gun would never fire.
All this is obviously just guesswork on my part, since I have no idea what the actual formulas behind the game code is.
As for using AA in ground roles, the Germans especially excelled in this capacity designing most of their AA guns with optics and low enough traverse to be used in ground roles. The obvious example is the 88mm gun, but most other AA guns were used this way as well.
So a -10 gets one shot off at the beginning of the firepower phase and nothing more. (which is what happens). A -6 ROF would have some small chance of a second shot.
Offense is always the first to fire and uses the longest ranged device. Then the defense uses their longest ranges devices range closes to offenses next longest ranged device until one of three things happen.
1. range = 0 infantry exchange pleasantries and CV is calculated. Attacker needs undisrupted units CV compared to defense undisrupted units CV 2:1.
2. Attacker CV threshold goes below some secret and likely random number, and the attack stops. This can occur well beyond the minimum range. "Defender scouted" is one such result but I have seen other types of attacks just stop at very long ranges.
3. Defender CV threshold goes below some secret and likely random number, and the defender starts withdrawing early in the firepower phases.
Then there is a counterattack result. What it looks like to me on high message level is that the defender turns into the attacker and gets in additional firepower rounds.
"What gets us into trouble is not what we don't know. It's what we know for sure that just ain't so"