I would like to know if/how it is possible to set a watchpoint from inside, say, a Winelib program (without any UI involved until the watchpoint trips), but don't waste a lot of your time on it if it's not.
normally yes. start your program from the debugger, then set your watchpoint: watch * <addr> or watch <id> if id is known (it could be complex expression), then size of watchpoint (1, 2, 4) should be set according to size of <id> then run your program (you may need to set temporary bp:s to be able to know where to set the watchpoint)
The ability to recall and edit the last command (the one I just fat-fingered) would be nice. :-)
if run though wineconsole (at least), most emacs commands work. So Ctrl-P recalls last command and allows you to edit it (it would be possible to use the regular windows arrows and such, but the trigger isn't set in the debugger)
A+