Honestly, I'm not sure there's a right answer here.
Back in the day, I chose heavy rotation via a corporate program. It was a real boost to my career, because it gave me a breadth of skills and make it easier in the long run for me to see a big picture and to have enough technical chops for almost any occasion. It's helped my career numerous times - I still fall back on some of those experiences 15 years later.
However, if I was looking at someone's resume and they had bounced around a lot without the benefit of being in a corporate program and/or without showing that they were loyal to a single company - it would raise some red flags for me. It takes 3 months to make an employee minimally competent and in a technical world, you don't really expect to break even on your investment in someone for at least a year. So... if I see that a candidate has focused too much on rotation, without digging in and being productive in a single role, I get nervous as a hiring manager, because the candidate may do similarly on my team.
So -- I'd say in an ideal world you get both. You strive to learn a breadth of technology, but while pursuing a singular goal. You also should be around long enough to see the outcome of the technical decisions you make. No technical choice is perfect, and learning how your work plays out in the long run is key to moving forward in a technical path.
Even without a snazzy corporate program, I think there's plenty of opportunities for this - most development positions involve learning a range of skills - even within a single programming language. And many jobs these days involve integrating a pretty wide variety of technologies.
I would say we have hit the end of the days when being a guru in a single technical domain will guarantee success. People need a depth of understanding about the critical aspects of their field, but coming "the guy who knows everything about X technology" is becoming a risky proposition given how fast technology requirements are changing these days.