0 doesn't mean the server deals with it, it means that it's the length of two server messages (by default)
how it works is, the server sets your "real" interp to the largest of cl_interp or cl_interp_ratio*(1/cl_updaterate); if you set cl_interp to 0, then since the default cl_interp_ratio is 2, it will set your real interp to
it happens that cl_interp_ratio 1 on cl_updaterate 66 (which is what people should be using now) turns out to be the same as setting cl_interp 0.0152; but that doesn't help unless you set cl_interp_ratio to 0 as well (it'll be restricted to 1, but they're equal, so it doesn't matter)
setting cl_interp 0 and cl_interp_ratio 1 gives you the lowest possible delay when you fire projectiles without breaking hitscan registration (which would require gay server settings, but whatever)
cl_interp_ratio 2 (same as cl_interp 0.033 for cl_updaterate 66) happens to be better than 1 for hitscan hitreg because of networking jitter; but I digress
tl;dr: cl_interp 0 cl_interp_ratio 1 cl_updaterate 66 cl_cmdrate 66
an aside: the "best" rates would be 66.67ish (200 ticks per 3 seconds, the rate that the TF server runs at), but the default server settings restrict them to 66 max.
EDIT: Interpolation is to ensure smooth animation when the client framerate differs from the server framerate (it will); basically it makes the animation halfway between different messages, and the higher cl_interp is the further apart those messages are (so the smoother it is on modern internet connections); but this delays your gamestate more than lower ones. the smoother the animations, the better your hitreg is, but the more delay there is the less realistic/accurate your game is.
On LAN, cl_interp_ratio 1 and cl_interp_0 is objectively the best.