That doesn't explain the blitz opponent who had about 1.8 seconds left and managed to make 15 moves and win the game using about 1.1 seconds, does it? This was several years ago but it's happened since although not as extreme.
That's impossible, since premoving takes 0.1s off your clock. You say you don't understand premoves, but you also say that can't be it? That's illogical.
Jumps in time due to lag do not happen like this. You see time frozen and suddenly jumps forward.
Like for example, you have 2 minutes left, it stays on 2 minutes for a moment and suddenly jumps to 54 seconds. This is a lag.
What I am saying is NOT like this. It reaches 2 seconds left and suddenly mounts up to 25 seconds, for example.
This is NOT due to lag. This is an intended increase. Try to understand what I am saying please.
That is exactly what is happening and the site provides an article explaining it. @omnipaul explained it very well also.
The simple fact is the clocks will always adjust upwards some from where there were just before the move is received by the client. The client may not show it, since most of the time, on a low latency non-nondisconnecting connection, the time adjustments are in seconds or milliseconds. In a high latency connection, or one where there are disconnects, you can see larger jumps.
There transit time between the server and your client will never be counted against your opponent, but their clock on your side starts decreasing as soon as your move is made and until you receive their move. Since it isn't counted against their clock, the time has to be added back.