It would be helpful, if there would be a special design-property for agents, that forces a refresh/replace only on the source - not the signature, schedule, scheduled server, etc.
With Backend-Agents you have problems with Design Refresh, that the agents properties, as "run on Server xy", Schedule, etc. are overwritten on design refresh. Of course there is a workaround (preventing agent from design refresh and agents call only lib-Function or other agent) BUT - sometimes after changes in lib (even if sub-call or parameter didn't change at all) refreshing the library only doesn't help -> you have to resave the agent calling the lib.
And: Often administrators or other responsible look at this prevention as an error and remove the checkbox...