There seems to be a bug in bg_pmove.c:PM_AdjustAimSpreadScale() with respect to frames per second and mouse rate. The higher your fps compared to your mouse rate the more it’s seen as a series of pauses and violent movements. For example, if you have 300 fps and your mouse updates at 100 times per second, PM_AdjustAimSpreadScale() will be called
roughly three times for every mouse update. Only one of those calls will see a change in mouse movent and increase your spread, the other calls will see zero change and simply apply a spread reduction. The problem is that there is a max error value for viewchange, so it’s beneficial to have your movement seen all at once as opposed to spread out.
You can test this out visually with cg_crosshairpulse. Find a map where you can get really good fps and move the mouse around while trying different com_maxfps values.
On my computer, at about 200+ fps and mouse rate approximately 100hz, I can move the mouse around all I want and not even affect my spread. With fps like 43 and 76 it doesn’t take much to reach max spread. 
