Because you haven't seen it, doesn't make it so. It is absolutely possible.
What it does take is time. Lots of time. I consider myself full-stack, and I've worked with a few great full-stack engineers over the years too. The thing they all have in common is 10+ years of software development experience, and without exception every one was what I call an "IT generalist" - aside from software development, they all knew a bit about Windows, Linux, databases, DevOps, networking at different layers, infrastructure, virtualisation, etc.
I agree, but more than that, it's also about what you're doing with that time. The distinction between having ten years of experience or one year of experience ten times very much applies here.
Some types of work naturally have a long, steep learning curve: the lone technical founder in a software startup, or perhaps a freelancer or software house employee who might work on several different projects for several different clients each year. You're potentially going to learn far more in a situation like that than someone working in one role on one project for one employer with colleagues to refer to if they can't figure something out for themselves, over the same period of time.
Multiply that difference in the rate of gaining experience by several years, and yes, you certainly can have someone with a skill set that is both broad and deep.
What it does take is time. Lots of time. I consider myself full-stack, and I've worked with a few great full-stack engineers over the years too. The thing they all have in common is 10+ years of software development experience, and without exception every one was what I call an "IT generalist" - aside from software development, they all knew a bit about Windows, Linux, databases, DevOps, networking at different layers, infrastructure, virtualisation, etc.