I wonder why pg_basebackup doesn't have any support for replication slots.
When relying on replication slots to hang on to WAL data, there is a gap
between when pg_basebackup finishes and streaming replication is started
where WAL data could be thrown away by the primary.
Looking at the code, the -X stream method could easily specify a
replication slot. (Might be nice if it could also create it in the same
run.)