Not only legitimate. Also better for many scenarios. Not only when you consider your existing workforce but also hire new people. It is so much easier if you onboard someone into something which is procedural at its heart and everyone can translate their core C/C++/JS/PHP/Python/Perl/... procedural programming into Java and C#. The reason async/await is so accepted there is because of exactly that.
Try throwing someone into a Go project with a C background. Until they learn the way of concurrency there, a lot of time is gone. Or even go one step further and throw a generic procedural coder into something like F# or Haskell. Or take the example of reactive UIs: It took the industry a decade to move from MVP based UI frameworks to reactive based UI platforms and we are far from being done with that move. Angular literal reactive-under-the-hood existence is due to that fact that people love to work with their traditional ways and are more productive in them.
Try throwing someone into a Go project with a C background. Until they learn the way of concurrency there, a lot of time is gone. Or even go one step further and throw a generic procedural coder into something like F# or Haskell. Or take the example of reactive UIs: It took the industry a decade to move from MVP based UI frameworks to reactive based UI platforms and we are far from being done with that move. Angular literal reactive-under-the-hood existence is due to that fact that people love to work with their traditional ways and are more productive in them.