I recently read the REST API doc about SObject upsert endpoint, which accepts Id field as the External ID.
"Inserting New Records Using Id as the External ID"
I'm not sure why the interface exists and what benefit we can get from it. If you are sure to insert new records, it seems very equal to the sobject endpoint for record insert.
It says "This pattern is useful when you’re writing code to upsert multiple records by different external IDs and you don’t want to request a separate resource.". Unluckily I couldn't imagine the case where the situation happens.