Rule with if statement prevents users from saving their user account
As an observation I would advise against using PHP directly in a rule if it can be avoided. Much better to put your logic into a custom action and call it.

But looking at the code you supply, you should note that the user account referred to in the rule and the global current one need not be the same (an administrator may edit someone's profile, for example). You should be using the account passed in to the rule throughout, not site:current-user. Also the user update condition, IIRC, may be called when a user object is saved in other circumstances than a profile edit, so the redirect won't be appropriate. 

So in order to be sure the user is editing their own profile, you should add a condition to the rule which compares the account's uid to that of the current user to make sure they are the same.