I agree to an extent. A good software engineer should understand the fundamentals and be able to adapt to most environments. Unless... your team is doing something very unusual. I like to think of it as a professional sports team (let's say basketball). If you have a chance to sign a skilled player who is an all-star, 7 feet tall, and can hit 3 pointers you sign him and it will probably work out!
In a football team, if you sign a fantastic player and you place them in a position where they can't thrive, they will leave after a counterproductive year. There are plenty of historical examples of it... Just imagine Neymar playing as a center back ;) The same happens if you hire a C developer for a Node.js gig, game developer for writing a mobile app, or someone who's been building React design systems all their l…
You can also see it in basketball where even though the positions are less specialized than football, you sometimes have a coach who demands things run a certain system (Phil Jackson's triangle offense is a good example). Sometimes a great player just can't be effective in that system.
But take a coach who is more flexible, and they could make it work.
But which is better?? It's hard to say since there are great arguments on both sides. I think it basically comes down to having the right coach with the right team at the right time.