Lag correction for the most part.
no I don't think so
Ok, you don't have to think so but that behavior is almost always explained by lag correction. The other possibilty is a temporary disconnect on your end, that may or may not be reflected in your client, and when you reconnect you see your and opponent's time change to reflect what the server actually shows.
no I don't think so
My guess is you'd rather hear an explanation that means your opponent is cheating. :P
Why do some people get extra time??? For ex: I'm playing a 3/0 game and my opponent is losing on time. He had 3 seconds left and I had 5 but they suddenly he got +3 seconds. Why