Most .NET SDKs get the HTTP layer right. Where they fall short is fit: models that don’t encode optionality in their types, error handling that hands back a status code and a string body to parse yourself, and patterns that sit beside the application instead of composing with it.