One argument for instead checking WAL file existence before calling archive_command might be to avoid the increased startup time. Granted, any added delay from this patch is unlikely to be noticeable unless your archiver is way behind and archive_status has a huge number of files. However, I have seen cases where startup is stuck on other tasks like SyncDataDirectory() and RemovePgTempFiles() for a very long time, so perhaps it is worth considering.
Nathan