How do I do this better? It appears to run everything many times as its at > 5 for 0.4f

if ((Mathf.Abs(transform.position.x) > 5f) || (Mathf.Abs(transform.position.y) > 5f))
{

        if (tag == "Enemy")
        {
            Debug.Log(tag);
            Anim.Play("EnemyDead");
            AudioSource.PlayClipAtPoint(deathClip, transform.position);
            Destroy(gameObject, 0.4f);
            //Debug.Log("Enemy Dead");
            
        }
        else
        {
            //Debug.Log("PLayer Dead");
            transform.localScale += scaleChange;
            //Debug.Log(transform.localScale);
        }
   

    }

}

You need a flag for when you have done it once, to not do it again. But you also need to remember this per enemy, so different enemies can be killed. The easiest way is to change the tag, so the if statement is not hit after the first time:

if (tag == "Enemy")
{
    gameObject.tag == "DeadEnemy"
    Debug.Log(tag);
    Anim.Play("EnemyDead");
    AudioSource.PlayClipAtPoint(deathClip, transform.position);
    Destroy(gameObject, 0.4f);
}
else if(tag == "DeadEnemy")
{ }
else
{
    transform.localScale += scaleChange;
}