Using git-send-pack to push to a local repository will propagate the environment variable GIT_OBJECT_DIRECTORY to git-receive-pack. git-receive-pack correctly ignores GIT_DIR (as opposed to what the documentation says) but, unfortunately, honours GIT_OBJECT_DIRECTORY.
It's not clear to me whether the correct behaviour is for git-send-pack to clean up its environment before it execs or for git-receive-pack to ignore most GIT variables.
Interposing a short script with env -i or env -uGIT_OBJECT_DIRECTORY is the easiest workaround.