I've switched stack's two times, because I changed company's.
I switched from PHP to C#.Net, and from C#.Net to PHP again.
Changing stack's didn't specially hurt my career progress, quite the opposite I think, at this point, I'm a developer that has knowledge on two key languages for Web Development. And from a career perspective that is helpful, because if my employer throws at me, a site in either technologies I can work with both of them..
In terms of technical knowledge, the switch made some big dent's, my core language is PHP, and with two years "lost" working on C# didn't help, I've missed a lot of things regarding PHP, simply because when I got home, I had to investigate some C# library, or class that I've never heard of.. and all the time was devoted to learning all I could about C#...
Continuing with the technical stuff, I don't believe that I can be good at two languages ( or anybody else, except a few rare exceptions ), and that was felt on my freelance work, because during the day I worked on C# and at night in PHP.. and since I didn't stay that much updated, there were somethings that I did, that weren't that quite right..
Regarding your other question, I like to work with every type of person, those who have an deep insight into a stack, and those who don't, because creatively speaking, their solutions are going to be completely different and that doesn't mean that one is better than the other.. and I also like to work with people from different areas from client management to web designer's, passing by the cleaning lady that always have life lessons, that I can use on my day to day work..