Can anybody explain why the search_path setting, with several config reloads, would not change via local connections? We struggled with our production settings on Postgres 9.3 today, only to realize, after a while, that the search_path change actually took effect via TCP/IP, but not unix socket, connections ever since the first reload.
What Tom said...
Alternatively maybe your Unix socket sessions are long lived but your TCP/IP ones are not - potentially going through a pooler that refreshes sessions. You need to describe more or provide repeatable evidence if we are to conclude that this is anything other than operator error.
David J.