Wrapping localrepo's loadhgrc() was not working for me because it is too late to wrap loadhgrc when the extension is loaded.
I'll try to take a closer look at this some time this weekend. In the meantime, can you explain more why it didn't work for you? There are tests that cover this feature, so I'm wondering if some coverage is missing.
I'm not sure if this is intentional, but it appears that it will unconditionally override even .hg/hgrc configs if .arcconfig is present. Before it would only override the global config, load .arcconfig, and then load .hg/hgrc. I guess it's only a small benefit that you could re-target the phab instance without dirtying the repo, so I'm not strongly against the change.
One of the lines looks like it might be long-ish, so you might want to run ./run-tests --local test-phabricator.t test-check-* to make sure it's OK.
if not repo.local() is the typical way to do this check.