But I don't really understand the point about early building health. We are one potential health ahead now, but it comes from resources that cannot be traded.
I think the goal in finding local health resources is creating an offset to balance a more global health nerf since it is our understanding that the dual goals here are historically accurately representing the health effect of pre-regrigeration perishables and lowering global health.
I guess the disconnect here is that you seem to think that the trading restriction has accomplished your health goal and combined with the granary nerf more than offsets the smokehouse's introduction resulting in a sufficient health nerf.
Let's look at a sample civilization, England. England has wheat and can only trade for Rice through India or China so not only does it require maintaining contact but also happening to catch one of those two civilization needing fish, sheep, or cow. This is difficult to maintain that rice rarely comes to England until they start building their colonial empire. Therefore the granary nerf only costs them one health.
The smokehouse takes advantage of the local sheep, cow, and deer. Theoretically taking Normandy could result in pigs as well but this is hardly reliable. Therefore the smokehouse is a 3 health buff.
The trading restriction only limits England's ability to get clams and pigs as all other perishable resources can be found locally. Since pigs used to be a one health resource until supermarket while clams are a one health resource until lighthouse this is a loss of two potential health from trading with a partner that needs fish, sheep, or cow until lighthouses get built at which point the loss grows to three health.
So on balance the health nerfs are completely off-settable for England with a smokehouse even without any expansion until lighthouse at which point the nerf is only one health. Is this a sufficient nerf to accomplish your goals? Perhaps you have more coming in which case this point is moot.
How? More health from forests?
I was imagining a stealth feature a la marshes on tiles that also have the perishable resources on them. However this would probably be a giant pain in the ass to implement, clutter the game, and create an issue if there is another feature at play (such as every deer on the map).
Another solution would be to adapt the happiness from improvement feature for health.
You mean the <iHappiness> line for improvements? So this would just be +1 local health for every pasture, camp, and fishing boat on the map? I would prefer this to having a smokehouse/lighthouse health bonuses. The benefit to localization of bonuses is that the smaller the civilization the less it is affected. London still benefits from it's nearby sheep, cows, deer, and fish; British Kingston does not. There is also less clutter. DoC's solution for a problem has rarely been, "let's just throw it into a building" and the mod is more elegant because of it.
I also like your idea of converting sheep into a happiness resource like cotton and removing it from the refrigeration limitation. That said I have not considered the impacts that would have on specific civilizations.