I found the origin of the issue and the solution: the Host header mustn't be manually defined for a request to work in an environment where Fiddler or Charles is active.
Which means we have to remove or comment-out the following line:
client.DefaultRequestHeaders.Host = uri.Host;
By not setting the Host youself, magically your app will be working again with a local proxy, and the framework will set the Host header fine by itself.
This will be useful for people who might have followed this recent Microsoft's guide where they do it wrong: http://blogs.msdn.com/b/wsdevsol/archive/2013/02/05/how-to-use-httpclient-to-post-json-data.aspx