Is mouseUp() guaranteed to be called if mouseDown() was already called?

Hello,
making the subject more specific:
If there was called on some Component object the Component::mouseDown() and later the mouse had beed released, is then guaranteed that on exactly the same object will be called Component::mouseUp().

I found out that sometimes mouseExit() is missed. Especially in audio plugins in AudioProcessorEditor whe mouse go out of the plugin window. And I wonder how it is with mouseUp().

I have quite heavy shadows rendering in my editor resized(). So I think about idea to make my own resizable corner, and do something like that:

void MyCorner::mouseDown(const MouseEvent& e)
{
    mySnapshotImage = myAudioProcessorEditor.createComponentSnapshot(myAudioProcessorEditor.getBounds());
}

and then in myAudioProcessorEditor::paint() I would like to draw transformed mySnapshotImage, instead resizing it for each MyCorner::mouseDrag(). And then on MyCorner::mouseUp() I want to reset the image and make real resizing.

But I need to be sure mouseUp() will be called.

Of course I am not sure if it’s great idea at all, because if there will be read any DAW automation then while resizing GUI will be freezed in Image. But even though I am still considering such a solutio

For any help great thanks in advance.