I'm working hard at not being left behind in terms of new technologies, and doing more managerial/architect style roles in recent years. I think people don't realize how young 40 is today, and more so how quickly it comes around the corner. You're 12 years from 40 and I assure you these 12 years will pass about as quickly as the previous ~5 years. I'm less than 10 years from a 20-something and already an "old guy"! bah.
Sure they may have grown their skills inside that particular silo, and that is worth something, but maybe outside the whole world has taken a different direction.
Never forget that the cool tech you're learning now will be out of fashion in a few years, and completely obsolete a few years more down the road (replace years by months for any JS framework out here :p).
Also, there's some unspoken assumption, that if you're 40 or even 50 and "still" an engineer, something is wrong with you - you should have been a CTO or something years ago, so you either have bad personal skills or are untalented, kept for some Job-Security-Tech you know.
The sad thing BTW is that this attitude is a self fulfilling prophecy, causing talented engineers to push up the ladder and become bad managers, or go into marketing/sales/etc. Even if they're not bad at it, we are losing great engineers due to that, who were just scared to remain engineers.
BTW to me personally tech is a second career, although I've been programming since I was a child, my first career was in journalism, and later web content and product management. I've only started working professionally as an engineer at 29.
Well, not all of them of course, but yes, knowledge of a particular language matters.
For example:
a) idiomatic code in a given language is easier to maintain, a programmer who doesn't know this language won't write idiomatic code for awhile
b) lack of knowledge of available libraries may result in reinventing them poorly, leading to NIH syndrome, which is bad for maintainability... and just bad in general
c) std lib of a language is a special case here: without having memorized what it has to offer you're going to work many times slower due to having to google all the time
and so on.
You can either know a lot of languages and technologies and bet your career on ability to learn new things very quickly, or you can be content with one language and become a master in using it. In the latter case much of your skills do become tied to the language and particular technology, so just be sure to pick one which is not going to stop being popular in a year.
I started my career around 15 years ago, working on a complex server system written in C++. The important skills back then were all about managing concurrency using mutexes, RW locks, events, and so forth.
Fast forward to now (with lots going on in between), and I find myself working again on server software, but this time the approach is much different: now for dealing with concurrency I'm relying on immutable state, and using Futures or actor systems to coordinate parallel work. It's been years since I've had problems with a deadlock.
Bottom line, it's true that a good programmer doesn't care about language or framework, since he can pick those up pretty fast anyway. But it's a skill that needs practising, and I've seen people neglect this and then regret it later.
Anecdotal; I know two engineers, one over 55 and one over 60; the first one is an expert at lower powered embedded hardware & software of the tiny kind (think smart credit cards, complex dime sized sensors); he gets flown in all over the world to help out for insane amounts. Chinese companies hire him to make more robust stuff. The other one is an expert at Fortran/Cobol/mainframe OS crisis management; whenever a bank anywhere has a very serious issue, he gets flown in to fix it. Again at rates high enough to only need one gig per few years.