But do we have any control on whether gdb-display-source-buffer will
find a source window where we want it to?  I'm not sure.

I don’t quite understand. gdb-display-source-buffer finds source window when there is one. What do you mean by “control” and “where we want it to”?

It shouldn't harm to try that.  I'd still make it optional - maybe
someone wants to see the other buffers.

I tend to agree with the last bit.

At the very least I want to fix the inconsistency in gdb-mi — goto-breakpoint uses `(or gdb-display-source-buffer display-buffer)` and gud-display-line uses `display-buffer`. We can modify the display logic to allow user customization once gdb-mi is consistent within itself.

Yuan