So what you guys are saying by "linear" is that the the calculation is dynamic. Essentially if the near range is 0 and the mid range is 20 but you're currently shooting from 10, the calculation will use the value halfway between 0 and 20. If that's true then it isn't too bad, although still watching point blank misses is terrible to watch.
Since scatter distance is linearly affect by range, if the unit fire from low range then scatter is also low and the projectile might no travel enough distance to collide if it misses.
But this hardly the place to talk about it.