Eric,
Good points, however most inland fish, Willamette,Cowletz,Lewis, Kalama, Columbia have a smaller sized fish and their rivers have lots of water in the spring. In the coastal rivers(IE) Trask, Nest, Wilson, Siletz, the water flows are at minimal levels and some at summer lows of 100-300cfs, and these rivers have nice big springers to 40lbs and 25 is average. Explain that theory? It is evident where fish travel long distances, they tend to be more streamlined, and in rivers like the coast where they may only travel 10-20 miles, they seem to be big. I know if I was to swim to the Snake River I would have trouble making it if I were overweight, But in Trask if I only had 10 miles to go to the hachery I could be a pig and still make it. Same theory applies in the fall. The fall fish don't have far to go b4 they spawn at the coast, But an Uppper river bright has a long journey ahead and will be very streamlined in shape. Most fish are built to swim where needed.
Another thing that I believe has a big effect on the size of the fish is choice of spawnig adults. If all fish were big that were spawned in a hachery, you could make a nicer run. Look at the brood programs success for Steelhead. If we did some of that to the Willamette/Clack/Cloumia we would have more big fish.
just my .02