Thanks for the compliment KernOily.
6 of one, half-dozen of another. IMO, they're all friction factor equations that when all the multiplication is over yield what you're really looking for, the head loss, in one way or another.
The difference between Churchill and the Colebrook-White equation for example, is in C-W the friction factor f is a function of 1/f, so an iterative procedure was required. In the Churchill equation friction factor is independent of f so no iteration is required.
Well you are correct in saying that hydraulic design usually involves an iterative solution in some manner or another, but that's really because we usually do not have our problem well defined to begin with, or its because we are really not too confident that some of the variables we know arn't at their optimized values, or because our bosses always think they have a better solution to one or the other of them.
If you take a flowing pipe, there's a number of things that we are usually faced with determining before we think the pipe is hydraulically solved. They usually amount to 5 primary variables, assuming the other extraneous variables such as viscosity, specific gravity, temperature, compressibility, etc. are all known.
So anyway they are,
1.) inlet head,
2.) outlet head,
3.) flowrate,
4.) length and
5.) diameter.
As all are dependent on one another, 4 of those 5 variables would have to be absolutely defined in order to arrive at a non-iterative solution for the last one, so it is possible to have a non-iterative solution for one pipe, given 4 of the 5 variables above.
As long as we can chain together one pipe after another, we can make a large determinate system, if for any segment we know 4 of the 5, even if they are a different known set for each segment. Theoretically we can write the one unknown variable per segment in terms of the known variables and solve directly for the system.
The chaining can be extended to include various simple "networks", if the network does not involve a loop and we are willing to define a boundary condition or two. A single pipe splitting into two branches can be broken into two chains and solved without iteration, if you can hold the a certain backpressure at one of the outlets. Often that's not too difficult to do, since the downstream pipeline or tank often defines some boundary criteria that we should meet anyway. Sometimes Mother Nature helps, but telling us that the outlet pressure can't be less than 0 psia, etc.
Comples networks (with loops) however can be another story. There an iterative proceedure is necessary, because in the simplest terms of flow determinations, we would not know what net flow could be circulating in any given loop, so we have to eliminate that one unknown variable per loop, or solve for it by iteration.
Most of the time we know or can guess at some of the variables, such as a good pipe diameter to allow us to arrive at a "direct solution", but it really depends on how well some of the 5 primary variables are defined to begin with, or how good your experience factor is at making great guesses that you don't have to iterate later. At other times, we need to eliminate some variables by shortening the time period of interest, to eliminate line packing effects from our solution, or shorten the length of the segments of pipeline to eliminate compresibility effects, temperature changes, or define some convenient boundary conditions.
But all good guesses aside, the only real common denominator for all of the variables is end cost of the various alternatives, so to do a "proper job" without relying on guesses or predetermined diameters, wall thicknesses, pressure drops, etc. amounts to a cost optimization and sensitivity analysis. Still you're not sure you've picked the right one until you get a hard bid on the construction cost, so it can be really difficult to do a good job at times even with very good guesses on your side.