This would prevent updates, but…
While I don’t have data, in my time as a Designated Support Specialist we did see a correlation between corruption so sever we could not repair models and ‘maintaining ownership’ of worksets or elements in this way.
So proceed with caution.
A better method might be to simply track modifications - doesn’t take much either.
Start by checking to ensure they are properly located. Archive that model for reuse. Next take each link instance and pull the VersionGUID. This is a property of the model which will tell you which version of the document it was last modified in. Write the element’s UniqueID, ElementID, Transform, and VersionGUID to a CSV.
Any time you want to modify a link, or add a link, or otherwise change things, repeat the entirety of that process, writing to a new CSV.
From there write new script to get the Element using it’s GUID, and compare the version GUID to the value in the CSV. If it’s different, build the transform and automatically reposition the link instance.
If at any point the element GUID doesn’t return an element, you know a user has been deleting and recreating instead unloading the link. You can also track down which synch did the modification using a Binary search on synch instances (if you archive them all, or if you’re using the Design Collaboration module), by using the DocumentDifference class of the API (look for deleted elements).
EDIT: Should have clarified, this is the method to get a document difference element.
Also… While I have utilized this method successfully on standard elements, I have not tried it with link instances, which are unique in the document structure so you might see a LOT of changes in them (like every version) in some circumstances.