Return a deep merge where managed leaves outrank user leaves.
Lists at UNION_PATHS accumulate instead of being replaced. A managed
scalar replaces a colliding user table whatever its depth, but only
when the value matches the type the manifest declares; a wrong-typed
managed value leaves the user value in place.