I'm surprised gdb wouldn't automatically consult /proc/PID/exe to read symbols. It seems more reliable than checking argv[0] and then reading the file at that path.
Maybe it's for portability. The /proc filesystem doesn't exist on every OS supported by gdb.
Sure, but I'm sure there are tons of Linux-specific things in gdb behind #ifdefs already; this seems like a pretty worthwhile thing that justifies adding one more.
This won't work if the debug symbols are in a separate file though.