Here are two comments from you:
>the user can buy the upgraded version of the app through In App purchase ONCE and only for ONE device
>in a condition where he has to buy another device, how does he restore back the bought software in the new device
These are not consistent. Chose 1.
Non-consumables allow the user to execute a restoreCompletedTransactions and recover their IAPs on any device that downloaded the app from that user's iTunes Account and is logged into that user's iTunes Account - that means new devices purchased by that user (and a few nefarious 'steals' by good friends of that user, perhaps).
Consumables do not allow restoreCompletedTramsactions. If you wish to allow the user to transfer the purchase to other devices you can use the user's iCloud account to switch to a new device. Record the device's identifierForVendor in their key-value file on iCloud. If they change to a new device offer them the ability to switch to that new device, but restrict that ability - for example, only 3 devices at one time or one switch per week or never back to the same device.