But if I change it I have to change all its callers, and then it propogates to all their callers, and ...

And the function is designed around swapping between primary and a single replicated location.