Back in the JSP/ASP/PHP days, everyone was basically a full-stack dev. Because of server side rendering and direct DB access etc. I'd guess people who have more than 5 years of experience come from that direction.
So they aren't that rare.
But doing just one thing is easier.
When I do back end stuff, I have to think about scalability and API design, which is hard enough in it self.
When I do front end stuff, I have to think about information architecture and perceived performance.
I can do both, but I don't have infinite time, so I focus on the things I like the most, which is the front end :)
A lot of the people I knew doing "full-stack" (which just wasn't a phrase back then) 5-10 years ago basically were still much stronger on one side than the other. I knew a whole bunch of guys who could build you a beautiful - for the time! - Flash site and they could store data via PHP into a MySQL database and they could deploy it on a server (and then they could send you an invoice! Seriously, totally full-stack)... but my goodness would you not want to look too hard at the PHP, because little Bobby Tables would have cried.
So they aren't that rare.
But doing just one thing is easier.
When I do back end stuff, I have to think about scalability and API design, which is hard enough in it self.
When I do front end stuff, I have to think about information architecture and perceived performance.
I can do both, but I don't have infinite time, so I focus on the things I like the most, which is the front end :)