We have had this discussion before.
The point is, IMHO that gunnar is very
strict about adding features that are
not obviously needed by even the
most minimalistic implementation.
The "standard" is extendable: feel free
to implement th {AB,AW,MN,PL,C} sgf commands
into your own GTP programs. Given unlimited undo, you
could even remove the sgf-reader
from the engine, and leave that to the
GTP-driver.
If you want to use gtp for controlling
(otherwise hidden) state in your program,
just create a private extension to the protocol
for getting/setting the variables.
One such command could be
"SGF AB dd qq"
AvK