Since I found it hard to alter access control for menu 'user/1/edit/PROFILE_CATEGORY', I re-implemented using hook_user() rather than hook_menu_alter(). Menu 'user/%user/delete' is still handled in menu_alter since there is no "pre-delete" action for hook_user().