Think this is present at least from 7.9 and I just did it again in 8.1.19.
How to replicate: Make at least two project library scripts. Name them whatever you want. Click to drag one, and go just on top of the other script. Let go. Now the script will be myLibrary (1) despite there being no duplicate around and so the (1) is unnecessary. You can do this within script folders as well, make a script package with two scripts, drag a script onto of the other script let go, and it will remain in the exact same name space/position it was but now with a (1) appended to it (well no longer the name space after the (1) is appended which is the issue imo).
I had a project I worked on a customer remotely with a bad connection a few weeks ago and I must have accidentally done this at some point because processes broke due to a script not existing, and I look to find that it is still there but with the (1) appended.
Luckily I had a backup so no real harm done, but it was embarrassing to explain what happened.
I personally don't see what the good faith use of this is supposed to be or do or why it's like this? If you drag and leave script on the same exact level/spot that it was in prior, why change the name at all, if there is no duplicate?
Related problem to this I ran into today, though I guess fixing the above would prevent the following -
Was working on a project in 8.1.26 when I accidentally did the above described, dragged a script nowhere, it had the (1) ascribed to it. I right clicked on it, clicked on "revert changes" and instead of changing the name back without the (1), it deleted the entire script.
I exited designer without saving, re-entered and there it was, but gave me a fright for a second. Just posting this for posterity until the aforementioned bug is fixed in case anyone accidentally causes the (1) to be appended - do NOT revert changes!
To reproduce -
make script, throw something in there
drag to make (1)
entire script is gone - don't save! exit designer without saving and you'll have the last saved version of the script.
This happens to me as well, only difference being, that it deletes ALL objects of the type I'm trying to revert. It doesn't happen every time, so i don't know how exactly to replicate it. I don't even bother with the revert changes feature anymore