First off, hatcheries are full of natural selection. That is how they get to be different from wild fish; they adapt to the hatchery environment.

Hatcheries chief benefit is that they produce more adult fish per unit of water than the wild. To produce "wild-like" fish in a hatchery will reduce the productivity, giving less fish. If you want to produce wild-like fish to restore a population, then there isn't a real worry about overall return. Just get back "more" than nature, especially degrade nature.

Selection of spawners will always be unnatural because the fish will be allowed to choose mates. You can argue that big to big, age to age, etc. is better than totally random but there is now way to now if that is what actually occurs in nature.

Incubtion in gravel produces bigger fry. To incubate hatchery fish in gravel you have to use more water and space. So, you can do it, just not as efficiently and water is the single most difficult piece to obtain.

Some species, like steelhead, rear in riffles and at lower densities as they set up territories. To accomplish this means you don't use ponds and lower density. Many species feed benthically or at least in the water column so surface feeding selects for different characteristics.

The list goes on. We can certainly do better, but each incremental "improvement" in culture comes at a production cost.

I am more of the opinion that we need to separate hatchery and wild. Mixed programs (integrated stocks) merely reduce the productive capabilities of both populations.

It's interesting that we talk about the genetic damage done by hatcheries. How damaging is, for example, having a few hundred "wild" salmon in a population or 20,000 hatchery spawners? What is the inbreeding coefficient for 200 vs. 20K?

At the bottom of it, the fish are different and produced for different purposes.