I'm afraid, we basically mean the same thing. I have always commented on GTP that it is not designed for angines to 'play a game' it is intended (and designed) to send commands to engines, and expect them to reply with the appropiate responses. The engine has no notion of a game; it is supposed to respond to isolated requests. One of Gunnar's design principles was to keep the amount of shared state (between engine and controller) as small as possible. Basically there is only initialised+size+komi+board-contents. The timing is more or less optional, and is communicated on a per-move basis. This leaves most of the timekeeping to the controller (arbiter or bridge). This will cause al lot of business-logic to be forced into the bridge (or arbiter) program, but it wil keep the protocol itself relatively small. (and: yes, most engines will have more flags to tweak than the protocol has defined, but there are always private extensions, caommandline-arguments and config-files.
AvK