implement a variable sensitivity 'based' on cl_sensitivity which is ramped down according to some algo or linear expression. when fov goes up, sensitivity goes down.
add some other variables 'minsensitivity' to set the minimum sensitivity at a given 'maxfov' which would be the max zoom level, or an arbitrary value like '90'. anything greater than 90 would just be set to the minsensitivity value.
this will fix the mouse issues so we don't have to tweak i_mouse_accel and i_mouse_accel_max to get a decent sensitivity while zoomed out and in.
mouse accel is very annoying and degrades precision. the fix for this is as stated: custom sensitivity for each fov, or sensitivity calculated from fov based on some formula.
in the days of RTCW, quake, etc we could set scripts to changed sensitivity before changing the fov. this works best for precision gaming.
above all, i_mouse_smooth is the WORST. it seems the smooth and accel are used as patches for lack of variable sensitivity based on fov.
that is all.