I tend to use OFFLINE
strictly because on active instances trying to set a database to SINGLE_USER
and be the single user that connects is not always consistent. If you set it offline that is it, it is offline.
I will also add that a better practice to do the restore is to have the application stopped or block access from the server. This will save from your error log filling up and prevent connections from occurring once the restore is complete.