I tried all of this, and it appears to make zero difference in my use case… they still avoid each other the same amount if I call the function or not, and I verified the functions were called…
edit* I ended up just using RVO avoidance, works exactly as I want and better…