The functionality I describe exist in... Arc Hydro! There are actually two tools, Toolbox > Arc Hydro Tools > Watershed Processing > Smooth 3D Line: "Smooths 3D lines linearly in the digitized direction." Another, applies the downstream constraint to a dendritic network, with a check that the constraint is kept at stream junctions. It is Toolbox > Arc Hydro Tools Python > Watershed Processing > Line Processing > Make 3D Line System > Make 3D Line System: "Construct a 3D line from input 2D line by getting the Z value from the input DEM, and M value from the distance between the vertice and vertice[0].'. Activate the Z smoothing parameter to apply the constraint. Thanks to Dean Djokic for the pointer, and to the AWRA GIS in Water Resources conference for having brought us together.
... View more