A couple of cases
- At first child pipelines couldn't access artifacts from the parent job. Now you can opt-in to it but nothing enforces sequencing
- Some features only work with "needs" (getting parent pipeline artifacts) while others only work without it (depending on an entire stage)
- When a job you "needs" doesn't exist, instead of having a sane behavior (e.g. skip yourself), the pipeline errors. Correctly propagating and maintaining all of the rules correctly in a moderately complex pipeline is ... difficult.