Why does civi sets employer relationship on sharing address – even if api triggered?
I suspect this is the result of poor assumptions. When you configure an individual to use a shared address of an org, Civi creates an employer/employee relationship with that org -- which makes sense. But it also assumes that employer/employee relationship is the current employer for the individual, which may be too much of an assumption.

In your description you indicated that it "deactivated" the existing relationship. I ran a quick test and found that the org I've just shared an address with becomes the current employer, but the existing relationship is still preserved and enabled -- it just isn't flagged as the current employer. Are you seeing something different? If you're seeing the relationship become disabled, that is more significant IMHO.