Because it obscures something trivial (in this case, assignment).  "What does combine_with_locator mean?  Oh, if (b) a = b (twice)."

Can go either way, but the first bit should be simplified to if (!redirect_locator.empty()) orig = redirect_locator;