When a ranged unit is firing at a unit, and that unit goes into the fog but still within the ranged units range, the ranged unit will continue firing at them accurately until they either take cover or go out of the ranged units range. This could be what causes the briefly mentioned "cheating artillery" problem. Make ranged units go idle or follow when a targeted unit goes into the fog, instead of firing upon them anyways.