There is no such thing like spread in realitiy - a bullet always gets straight out of the gun and goes straight into the target. Only forces that can change the speed and direction of a bullet are gravity, wind and solid objects.
Actually, thats not quite true, there are 3 main factors that keep a projectile on its course:
1) pure velocity, get it going fast enough, and it is likely to smash through outside influences like windage and gravity, for a time atleast, obviously it will slow down as it travels, and accuracy will decay.
2) weight, its basic cinetics, a heavy object set in motion will require a lot of energy to change its course, but this ties in with velocity, it really works best at speed, and speed is dropping increasingly.
3) gyroscopic stabilisation, put a spin on your projectile and this will greatly aid accuracy, however, the spin will slow down as the projectile travels, thus the effect will gradually wear off, and ofcourse, many tank guns dont have a rifled barrel but rely on pure velocity and weight instead.
So you are only partly right, any decent projectile will be very accurate indeed just as it leaves the barrel, but it will decay from there at an increasing rate, however, the bigger and faster it goes, the longer it will take to decay (well assuming the projectile was made properly, a Musket ball is not exactly the same as a modern missile shaped projectile), thats why Sniper rifles today are big calibers, like .300 Win-mag, its not really because they need the extra range, a normal 7.62x51mm has a very long range, but because you have that extra weight and speed, you get better accuracy.
But tank guns are massive things fiering massive projectiles, so rifled barrel or not, they get very good accuracy indeed, an object that big, traveling that fast just wont budge from its path unless alot of outside force is applied to it, and since modelling true ballistic decay would require so much code it would lag out even the biggest and baddest server, what we have now will do just nicely