Apple's official documentation is still unclear. I observed this: the token is invariant for a given device, application, and domain (production vs. sandboxing). I believe that this should remain true in order for the system to work reliably. Consider a situation where an application update launches a new APN token; if I used the largest new app like Twitter with notifications turned on, what happens when I update the app from iTunes? Should I expect it to continue to send notifications, even though I did not start the application, since I am “synchronizing” the update with me on the device? The act of changing the application cannot affect the APN system, since the OS can receive notifications on your behalf, even if you did not run the updated application.
To be clear, Apple states: "The application must register [with APN servers] every time it starts and provide its provider with the current token." I totally agree; this will protect your application from bad assumptions or unusual situations.
One of the answers to: Are notification notification tokens unique in all applications for a single device? indicates that device tokens are unique to “install an operating system”; and that restoring from the backup to the device will support the token, but cleaning the device will result in a new token. This would be fully consistent with Apple’s intent to ensure smooth operation and confidentiality: wiping the device is serious enough that it may require a new association, but the user restoring the image after updating the OS will want to keep his existing notifications. If I recall the recent iOS5 update on my iPad, I restored the most recent backup after the update, so that this would ensure consistent notification tokens. [Edit: restoring the backup to another device will not duplicate the token.]
nuance: I do not have final knowledge on this issue, only some reasonable experience working with APN (as a third-party developer). As always, it's best to check your assumptions.
Update (June 2012):
Recently, I had the opportunity to talk with Apple engineers and b> run some real tests, and I wanted to present the results:
To be complete, when I talk about returning an APN token, I assume the context of a single package identifier / application.
First, Apple engineers said it should not be possible for two devices to return the same APN. Despite the comments below, I could not determine the circumstances when this fails.
Secondly, here is a test update sequence and results:
Start with iOS4 installed on iPhone4; backup device in iTunes
Upgrade to iOS5
From the previous test, I know that the APN token is now different
Restore device backup APN current now matches step 1.
Reset iOS (clean device)
APN token changes
Backing up another phone to iTunes and restoring this backup to test the device; basically, I restore the “wrong” backup, as if I switched phones.
The APN icon changes again; further it differs and does not correspond to the tokens or the original token or the “cloned” token.
Restore the “correct” backup of the device.
APN current now matches step 1.
Finally, I upgraded the phone to iOS6 (beta2), restored my backup, and retested. As expected, the token continued to match the token in step 1.
At this point, I am sure that APN tokens cannot be duplicated between different devices; it may have happened as an error in earlier versions of iOS, but I’m sure that iOS5 (and, presumably, iOS6) process APN tokens correctly.
Update (August 2012)
I just realized that I did not add this: device tokens will change. One of the Apple developers shared with me that the tokens really expire (in two years, I think). For many purposes, this is long enough, which can be considered invariant.
[I'm not worried if I need to update my test scripts with new tokens every two years, especially since I change phones every year.]