Change a regular script to a packaged script but keeps its GUID

Probably this is very niche, but if I have a "regular script" and convert it to a "packaged script", its identifier (GUID) also changes, causing all script settings to be lost (or reset to default values).
This is particularly problematic for shared scripts since all users would have to redo their configurations.
Is there a technical reason for this?
And more importantly, can it be changed to preserve a script's identifier? I'm guessing that two script commands with the same name can't coexist if one is in a .osp package and the other is a simple file, so there would be no reason to retain the old script GUID (and give it a new one) if it's just being updated to a packaged version.

Every new script (filename) gets a new GUID (which won't be the same on every machine; it's auto-generated when a new script is found in the scripts folder).

Maybe a way to explicitly set the script's GUID would be useful, although it'd run the risk of people copy & pasting that GUID into their own scripts without understanding why that's bad (which we've seen happen already with C++ plugins where the GUID is defined like that).

But you'd still have a problem with existing configs the first time you update the script this way, as there's no easy way to know what the GUID is on each machine (although I guess you could try to read it out of the config file), meaning it would not help with this update, only when/if the script's filename changed again.