Prefer actual child value to childPath.value when traversing.

Previously we asserted they were the same, but that was not necessarily
true in cases when the childPath was cached by the parent path.