There is no workaround for defective "searchmoves" because what moves are legal is determined by the position itself. The GUI cannot compensate for that. The next best thing is to announce it beforehand instead of letting the user run into "oh doesn't work". Maybe MultiPV could be abused, but that's optional, and "searchmoves" is useful mostly as "poor man's multipv" replacement.
By contrast, the GUI can easily kill and reload engines that don't read "?" during search. This way, even analysis becomes possible by just giving a move time of several days. This in turn is useful for questions like "does the engine find this move at all, and if so, when?". Together with automatic score sign and mate score detection, these three issues so common with CECP engines can be abstracted away from the user, which would give a smooth user experience. Sure, layer 7 isn't the ideal place to do that from an architectural point of view, but still better than "layer 8".
Of course, the question is whether this nicety is actually worth the implementation effort in the GUI, but that's up to its author.



