Michel wrote:The UCI protocol on the other hand is designed for a GUI with chess knowledge.
It is just a trade off.
I am not sure what exactly is traded. It seems you would lose awfully little to allow 'bestmove 0000' to be used as result claim (the obligatory score field telling you the nature of the claim, 'cp 0' = draw, 'mate 0' = checkmated, other negative scores = resign, positive score = illegal move /position claim). And this minute extension of the protocol (more a tightening up of the specs, really) would allow the use of UCI by GUIs devoid of any game-specific knowledge.
Likewise, it is not sure what you would lose by allowing a draw offer to accompany the go command, 'go draw movestogo 12 ...', allowing the engine to contemplate acceptance, or refuse it by making a move.
So it seems you trade all these "can't do"s for no compensation at all. This makes it more a design oversight / flaw than a trade off. In your interpretation of the protcol, engines would have to check moves for legality anyway, to know which they would have to ignore. I.e. sending them "position startpos moves d7d5 e2e4" would be a perfectly valid way of sending them the position after 1. e4...
I thought too that it was meant for cases in which the engine does not have a bestmove to return (like a mate solver that does not find a mate).
However it seems other GUI's do not recognize it.
That might be because they are a crappy, non-compliant bunch, of course...

I think the GUI is free to do what it wants. Just pondering on the position seems logical. But why would the engine not supply a ponder move?
No idea. They might have moved from an 'only-move' situation without search, perhaps? Fact is that BlunderUSI doesn't provide one in any position.