Since functions are handled by AWS, and we proxy to it, you can send basically any header you want via your browser and it should reach the function.
We do point out the reserved words in our docs here (albeit, not in a place you might look at if you are not trying to configure our custom headers feature):
…but most of those are just used by the browser and would be hard to override in normal operation.
While we don’t provide tech support for folks at your account level who proxy to netlify (read more about why here: [Support Guide] Why not proxy to Netlify?), I suppose I can still mention that the best practice here would probably be to have your proxy inject a header of the original hostname in some namespace we don’t squat on - X-my-original-host or something - and we’ll faithfully pass that on to your code.
If you use Netlify as intended - that is to say “not proxy’d to” - then you’d see the initial URL in the Host header, so there would be no “translation” or other fancy footwork needed.