I believe that's the main misunderstanding here, `guix home` acts like
`guix system`: it creates home generations, inside which there is a
profile.  That profile is _not_ ~/.guix-profile, but rather
~/.guix-home/profile.  They are disjoint and not operated on by the same
commands, guix home will not touch ~/.guix-profile.  If you configure
your shell environment variables with guix home alone, I believe only
the the guix home profile is available by default.

I think I tracked down the problem.  In my home-zsh-service, I added the contents of my previous .zprofile to to my new .zprofile, including "source /etc/profile", so my .zprofile (with autogenerated lines) looked like:
source /etc/profile
source ~/.profile
source /etc/profile
Basically, /etc/profile stripped from my PATH the ~/.guix-home/profile which was added by ~/.profile

I think this solves the original problem, but I don't like that ~/.guix-profile/ AND ~/.guix-home/profile are added to your path by default.  I admit this is probably a "sane default" for most users, but I care a lot about reproducibility.  Though I think there should be a better solution, for now I am going to have guix home run "guix package -m" with an empty manifest on reconfigure.

Thanks all for your help,