If the engine has been kept healthy and well filtered/lubricated then there shouldnt be any need to flush it. The flushing chemical/foams/systems were introduced to remove 'sludge' from neglected engines. Some of these chemical degreasers prevent lubricant (i.e. oil) settling on metal surfaces along time after application due to residual residues, and some even contain alkalines which can attack the more delicate components inside our engines.
As Boozer_matt said, the best way to clean out an engine is to strip it down clean it by whatether method (glass-bead the outer, hot tanking the parts in a chemical wash, etc all followed by a thorough rinse!). blueprintrace (formerly Importbuilders) now use a 100,000USD jet wash machine that can even be used to cut aluminium with CNC prescision!, they clean their stripped blocks down with using steam power to melt-down any oil or gunk without leaving any residue!
In my opinion they serve no purpose on a assembled/installed engine unless its been severly neglected. And even then it would make more sense to strip it, clean it, rebuild it!