Iuri, to save your time: neither in NaviServer or in OpenACS is something i would call "cache"; and if your code works after the restart, it must have different causes to be found in your code, but not in the infrastructure.
Certainly, ns_sets (which are used for header fields) can be reused within a request for multiple usages/purposes. After a request, these are cleaned up automatically via "ns_set cleanup". So, if you use/reuse e.g. an ns_set for headers for multiple "ns_http" client requests, and you are always adding additional fields to it, you might end up with a request with multiple "content-type" header fields. So, the general recommendation is to use always fresh ns_sets for http-client requests (unless you know, what you do).