Will Yarn ever be merged into npm's CLI? Why does the node community back two package managers?
Competition is good, and having 2 implementations of the same basic idea that each prioritise different things means that more people can have their cake and eat it too.
Having one tool that has hundreds of flags to enable different use-cases is an anti-pattern in my opinion, and a fantastic alternative is to create multiple competing tools that each handle those different use-cases. It's the unix philosophy taken to the extreme, each "program" should do one thing, and do it well.