The Jenkins core setLabelString() method changes the original label but still can be reached by the origin label

In my case, I have a pipeline called setup-upstream to select 4 nodes with the sim-test label and changes to reserved-sim-test-{buildnumber} then trigger the downstream job to call the individual node to run some steps then change its label to sim-test-pre-{buildnumber} if successful.

So the issue is that after sim-test changed to reserved-sim-test-{buildnumber}, I can both access the node by {JENKINS_URL}/label/sim-test/ and {JENKINS_URL}/label/reserved-sim-test-{buildnumber}/ in a short time.