The title says it all. I have found this from 10 years ago saying that if database data it's all in the same snapshot, then isn't needed. PG will start from snapshot like in a typical crash.
But what if there isn't a single snapshot for the whole DB? What if there are some tablespaces in other datasets and WAL is in its own dataset too? This way, snapshots could be offsync a very small period of time. Would this make necessary to pg_start_backup to ensure no data corruption?
I have found this too from 8 years ago of a guy testing exactly this, if PG would start again creating intentional delay between wal & data snapshots, but using vmware VM snapshot technology. So it seems it can work, the question would be, will it work always?
In fact, going an step further, why would be pg_start_backup() needed in any circumstance? Isn't WAL replay capable of fixing the internal inconsistencies of a non instantaneous backup?