The isolate can indeed be re-entered and, in that case, a counter is increased.
The isolate is only exited when the counter becomes zero.
This is indeed a different behaviour from what the
documentation specifies for the Locker/Unlocker.
Do you have a scenario where it is not possible or convenient to properly exit the isolate (using the right number of Exit calls) before using the Unlocker?
If thread A has entered the isolate (N times) and then uses the Unlocker without properly exiting (N times), then it can still use the isolate.
If at the same time thread B uses the Locker and enters the isolate, we end up with two threads using the isolate simultaneously.