Switching transport protocols is insane; git-core doesn't support it, and nobody has ever complained.

We allow whatever redirections libcurl can handle internally, including http->https and hostname switching. If you are doing it by hand, you would want to be careful in the latter case about which credentials you are sending. Curl clears them when following a cross-server redirect.