It's becoming increasingly evident to me FAF does not record ranked games correctly. Incorrect or non-reports are at least a quarter of all games, as best I can tell. As Zep has pointed out, there are numerous problems with the overly simplistic return that FA gives to the client and this, itself, is the cause of many problems. However, I have a rather novel solution to the problem:
Ask the player what the result of this game was.
Whenever the game client is closed, ask the player to report what happened, then have them click a button: Win, loss, draw, desync/disconnect. In the even both players pick the same thing, take that and compare it to the results to help improve the systems accuracy. If not, take the system-generated result as truth and note it as a disagreement. Keep records of the player's disagreement %.
This isn't a perfect system... players will lie... but this will improve accuracy above that of the current system. Again, this is because it will take players' word if they agree, and take the system word if they disagree. It is unlikely, because they have incentive not to, that any two players will willingly give false results that equal each other. At worst, this system will do what the present system does.
Zep, others, thoughts?