Languages use depends on the platform, etc. MQ-8 used Linux and V-22 was working updates to FCCs and Mission Computers to bring in more computing power and more modern languages.
Yes, it does; every language is a tool which has its own strengths and weaknesses. That said, Linux is not a language; it's an operating system, or more precisely an OS kernel you can build a specific Linux distro around. Like, say, Android.
Oftentimes, the reason to use a lower-level language is due to resource constraints. A higher-level language such as Python or C# abstracts away a lot of the manual housekeeping and allows a developer to focus on the important stuff, just like FBW and PLM. But that comes with a performance overhead. Assembly is the lowest of low-level languages, because you're sending discrete commands and granular instructions directly to the CPU. So written properly, it's insanely fast. But the developer is equally going to be absurdly down in the weeds when writing code, having to manually move bits and bytes between the CPU and RAM for everything.
What's happening now is that, in the era of phones that have as much power as a 1980s supercomputer, the juice is starting to not become worth the squeeze. There will always be edge cases where you need to write some stuff in assembly, typically the stuff that directly touches the CPU and provides an interface for other people to interact with it. But elsewise, it's turning into a small sacrifice in performance for not much gain.
Even C and C++ are eventually going to become dated. They're almost as fast, but also make you manually control what goes where in memory, and if you screw that up, you can create a bunch of different entertaining security holes that hackers can use later. So now, there are new languages like Rust that people are starting to experiment with, where someone has cracked the code on how to keep things fast while denying devs the opportunity to manually screw up admin.