On "Validating Receipts Locally" page we can see the following text:
When an application is installed from the App Store, it contains an application receipt that is cryptographically signed, ensuring that only Apple can create valid receipts.
Also inthis post two people pointed out that a receipt is provided on an install.
So, why do we need "Restore purchases" button? On SKReceiptRefreshRequest page we can see the following text:
The SKReceiptRefreshRequest class allows an app to refresh its receipt. With this API, the app can request a new receipt if the receipt is invalid or missing.
So we need this button to refresh app receipt? Is it provided on install or not? Why should it be missing or invalid after install on new device? Hackers can modify app receipt, of course, but we can validate it with App Store and then fire SKReceiptRefreshRequest in case it's invalid or missing. Do we really need to provide "Restore purchases" button to end user?