in general, be whatever you want to be
to be specific, concentrate on what you enjoy most and/or seem to do best; hopefully these are the same thing
for the OP's specific question, increasing specialization in the team as proposed would greatly inflate the "bus factor", so it might not be a good idea (at least not without some cross-training) for the enterprise to take that approach. From the developer's perspective, it might not be much fun, either, being pigeonholed as an 'analyst' when you yearn to code - or vice-versa.
In truth, most people are neither one nor the other - unique experiences give us insights into areas that others may not have; this gives the appearance of being a "specialist", but the term itself implies limits that are usually not appropriate. You may have recently done a lot of difficult work with regular expressions in Perl; does this make you a Perl RegEx Specialist, or is it just an interesting facet of your general abilities? I submit that it is the latter - we are all generalists, in that we use tools to solve problems. So a "specialist" would be someone who only knew a few tools, and was best at a certain kind of problem. There are people like that, but the vast majority of developers that I've met are not so limited.
The comparisons are almost always relative, but sometimes they are quite stark: on a project a few years ago we had a kick-off meeting so everyone could meet everyone else before we went back to our home offices (all across the USA) to start work. The lady to my left was an AI programmer specializing in Lisp and image recognition that had recently worked with Marvin Minsky and Richard Feynman at Thinking Machines Corp. The gentleman to my right developed the guidance system for the Apollo rockets - yes, a real rocket scientist! The rest of the team was equally impressive, and everyone had a unique specialty that made it obvious why they were present on the team. After a few minutes of sitting there thinking "I am not the smartest person in the room here by far, why am I here?", I realized why I had been invited to join the team - compared to those around me, I was the token generalist!
This turned out to be a great thing to be, because I got to work some with everyone and it forced me to learn at least a little bit about what everyone else was doing, how it worked, and how it integrated with everyone else's work - with the net result being that while the specialists learned some new things and improved their skills a bit, I learned a lot about a great many things. When the project ended I was still "just" a generalist, but I left with a much bigger bag of tricks than I came in with.
So, I like being a generalist - you get to have a lot more fun!