I don't think the curved from between some -100 mV and +100 mV is due to averaging over using the + and - relay setting. Most of the data shown here are with a rather long integration time of some 20s / 40s and thus not averaging very much. The jumps would also be visible and I would not expect a relatively smooth curve. It is more that the meter stays with the old sign until it reaches some -40 mV and than changes the sign. The switching takes time for settling and thus wants some hysteresis to avoid overly frequent switching.
One of the older curves from brandic showed the contineous curve down to -40 mV and only than a jump.
When using the KVD one may have forced the switch over already near 0 mV, e.g. from the sequence the points are measured.
My best guess on the nonlinearity is from the ADC getting nonlinar when getting close to the low limit of the hardware (some -120 mV theoretical, maybe -100 mV if pulse skipping is excluded). At the very edge the pulses for the reference are short (like < 1.5 µs for 120 mV from the edge). Due to noise and hum some pulses may end up even shorter (the clock is not very high), and depending on the HW possibly are even missing. It is expected to get some nonlinear response very close to the edge - the question is only if the 120 mV distance to the edge is sufficient. I understand that they want to keep it small, as there is some drift with the shift.
To me pulses of some 1.5 µs look rather short for an not that fast (typ 600 kHz GBW) OP77 in the integrator.
I don't think the nonlinear part is from some numerical correction that is going wrong. The more logical countermeasure would be a slightly larger shift. A numerical correction could be tricky, as I would expect hum to change the INL (make it worse). It would however need quite some hum (e.g. > 20 mV) to make a difference.
When assuming an ideal curve through zero, the data would be slightly out of spec (~0.6 ppm off). If one could have some residual offset for a short, one could get parameters to reduce the INL error to maybe 0.3 ppm and thus in spec. It would still be rather unconventient to have an offset and it would also need extra effort to set it that way.