So in the case you mention, foo is only fetched, not fetched and merged?

I was trying to reproduce the behavior you mentioned and it looked like an octopus merge is always done when multiple refspecs are included on the command line.