Alexandra> Add a new DefaultInferiorFd feature and the corresponding packet.

One question I had is - why a new packet?  A new packet seems somewhat
weird, in that it's only valid pretty early during startup, it seems.

Another approach might be to have a different way to specify the
connection fd to the remote, like a command-line option naming the fd to
use for RSP traffic.

Are you imagining something like "target remote | gdbserver --once RSP_FD ...." ?
And GDB would replace RSP_FD with the actual file descriptor to use?
I agree that's a good idea but both  approaches have pros and cons.
You are correct that a command line approach is better because it
avoids adding a new packet and the whole FD switching business. But adding the new 
packet approach makes it easier for the users. It's possible to run GDB to then run
 Valgrind from inside by using simply

target extended-remote | vgdb --multi

I hope this command will be replaced with an even simpler " target valgrind" at
some point.
If we wanted to use the feature with GDBserver, I think, it's always more user-friendly
 when the user does not have to set any additional command-line options.

Thanks,
Alexandra