I'm sure you already know what I'm going to tell you: "Of course you need that backup_label file. How could you even think that you don't need that backup_label file?" Well, you're right. That is what I'm going to say. But do you know why you need that backup_label file? If you were to remove that backup_label file (or fail to create in the first place, in cases where that is your responsibility), what exactly is the bad thing that would happen to you?A backup_label file is generated for you automatically when you run pg_basebackup. If you use pg_backup_start() and pg_backup_stop() to perform a backup, then pg_backup_stop() will return the information that needs to be written to the backup_label file, and you're responsible for actually creating the file and putting those contents into it. The documentation cautions that this file is "vital to the backup working and must be written byte for byte without modification," which certainly sounds pretty alarming.
Well, actually, no. What happened is that I got lucky. Let's look at an example where things don't go as well. I took a new backup in almost the same way as the previous one, and here's what the log looks like this time, with the restore done properly, i.e. backup_label is present: