OnTriggerExit isn't called when the object is destroyed?

I have such script:

  private void OnTriggerEnter(Collider other)
  {
    if (triggered == 0)
    {
      Highlight();
    }
    ++trigerred;
  }

  internal void OnTriggerExit(Collider other)
  {
    --triggered;
    if (triggered == 0)
    {
      Dehighlight();
    }
  }

After objects were triggered and another of them was destroyed OnTriggerExit() of current object isn't invoked and object remains highlighted. Why so?

Because that's the way it works, whether it's a bug or intentional I don't know, but I think it's always been like that. My solution is to move the object far away for one frame before destroying it; that way OnTriggerExit will always fire.