The one issue I'd really like to fix for kgsGtp is how to solve problems when the game is over, and the human and the engine (or for that matter the two engines) disagree over which stones are dead.
GnuGo on NNGS solves this problem by abandoning the game if there is a disagreement. Since GnuGo very rarely makes mistakes in judging life and death at the end of the game, this works well for it, since only once in a while must a human inspect the game record and resign a game that the engine was wrong in. It can still cause trouble though; on KGS, leaving too many rated games without finishing them gets you tagged as an escaper, so it could make people very angry if an engine sits there and won't finish a game, leaving the human with the choice of either accepting a score tha they think is wrong, or leaving the game and getting possibly tagged as an escaper.
But, it seems that the problem is solvable in another way. If you are using non-Japanese rules, then you can always just resume the game and play it out to decide which stones are dead. If there was a genmove alternative, like "genmove_cleanup" or some such, that would not pass until all dead stones were removed from the board, then rated games would work well. Basically, if the human and the computer disagree on which stones are dead, just resume the game and start sending "genmove_cleanup" commands. Once "genmove_cleanup" passes, we know that there are no dead stones left on the board. If the human thinks that there are still dead stones left, then they can resume the game again and try to kill the stones. Eventually, a point will be reached where any reasonable person and engine will agree with each other and end the game.
This seems nice, engines such as gnugo will then very rarely need "genmove_cleanup", but less mature engines can still play rated games, they just annoy the humans sometimes by requiring play until all the dead stones are gone to score correctly.
Does this sound like a reasonable solution? If any engine author is willing to try it, I could add it as a kgsGtp-specific command. Engines that support this command would be able to play rated on KGS, with no issues about cheating. On the other hand, if none of the engine authors are interested, then there's not much point in me adding it.