Na sua função git_prompt_info você deve prefixar a saída com um espaço se houver alguma saída, caso contrário não. (Como uma observação: você provavelmente vai querer olhar para o sistema vcs_info que está integrado ao zsh, veja a página de manual do zshcontrib)
Quanto à sua segunda pergunta: Se eu entendi corretamente, você deve usar %~ em vez de %c para conseguir o que deseja. Se você realmente quer que o caminho completo seja mostrado, use %d . Dê uma olhada na % página de manual dozshmisc ( seção de expansão do prompt ) para mais variações disso.