Does OnStart gets called from WebRole.cs in the case of Upgrade deployment?
http://msdn.microsoft.com/en-us/library/microsoft.windowsazure.serviceruntime.roleentrypoint.onstart.aspx
Yes, I believe it runs on every reboot. When the machine is rebooted, reimaged or upgraded by Microsoft, the OnStart will run.