Once you code for long enough, every language begins to look the same and it becomes easy to switch. I have worked full time with PHP, JS, Java, Python, Objective C, and C++. That's at both multiple startups and at a FAANG.
In fact, if you choose one strongly typed language and one weakly typed to know in depth (eg Java and JS) it's really easy to move to others.
The trap that people fall into is that they focus too much on learning the ins and outs of a framework and not the important concepts. Or they are stuck in a problem domain that's very thin on CS concepts, like web dev or frontend dev. You don't learn concepts that make it easy to transition.
From my own experience, focusing on CS and math (esp. stats) and systems programming have made it really easy to move around.
It has helped that in the last 10 years most of the languages have converged to an extent.
Like before things like generics and lambda expressions C#/Java were quite different to Python/Ruby, and js used to be quite an abysmal language but with some nice features nothing else had (still is an awful language to an extent). I think C# 2.0 and 3.5 really changed that language for the better, Java spent a lot of time getting to the C# 3.5 level.
And I remember a time when C++ was almost incomprehensible if you'd never worked in it, but now it seems to be a lot less daunting as you've got bridging languages like Rust and Go.
I must admit I've still no interest in Haskell/F#/etc. I tried Lisp about 10 years ago and it just seemed such a pain, for me I find imperative programming so much easier to map out complex interactions in my head. I also find set based programming like SQL very easy. But functional, ugh.
Agreed, I feel like most languages have converged into some kind of variant of C#. Even JS, if you count Typescript.
For multithreading, I would take functional over imperative any day though. The multithreaded code I write in Java ends up looking like functional code by way of chaining futures, but it is still hindered by the use of shared memory and synchronization (or lack thereof).
I enjoy C++, and the additions in C++ 11 and 14 are mostly good ones. But they don't do anything to make the language more approachable IMO.
In fact, if you choose one strongly typed language and one weakly typed to know in depth (eg Java and JS) it's really easy to move to others.
The trap that people fall into is that they focus too much on learning the ins and outs of a framework and not the important concepts. Or they are stuck in a problem domain that's very thin on CS concepts, like web dev or frontend dev. You don't learn concepts that make it easy to transition.
From my own experience, focusing on CS and math (esp. stats) and systems programming have made it really easy to move around.