(Sebastian:) This page contains a proposal which I moved out of /GameHandling? to clean that page up. It that may or may not be useful - I don't know enough about the current rating algorithm to assess this.
When computing Rank_A at time t, do not use the current Rank_B(t), but a weighted average such as
Rank_B_Avg := w(t-t0) * Rank_B(t) + (1-w(t-t0)) * Rank_B(t0)
where
(I assume that if Rank_B(t0) is not available (e.g. because the player had a question mark) you already just reduce the overall weight factor for that game.)
jfc: don't we want sudden jumps when a player returns after hiatus? After all it is common for a player's skill to have changed (e.g. they played a lot at the club for the last 6 months but not on KGS or they didn't play a single game for 9 months and have lost 2 stones of strength).
As to the I won a game and my rating went down complaint; The problem is with the people, not the rating system. Perhaps KGS could implement a ranking system e.g. you are the 923 best rated player. This puts you in the 87th percentile of rated KGS players.
With both a rating (used to select an appropriate handicap between two players) and a rank (used for inflation and deflation of ego) we would be much richer, having two numbers to complain about rather than merely one!
Another benefit of adding the rank measurement is it would encourage folks to bring beginners into the game because the more 30-kyus that join KGS the more my KGS percentile rank would increase inspite of my skill level remaining more or less the same. Of course I would have to sabotage beginner's learning to maintain my improved KGS rank...
As far as the hiatus drift is concerned, I've observed it myself but it don't signify. A few games and the rating is back where it should be.