Yes, very true. We have everything to make really good immersive missions - in principle!
The real problems arise when you want to add a bit of randomization, i.e. create a mission that you could play 10 times and each time something slightly different happens. For example, aircraft block each other on the taxi way and cant take off ==> mission impossible, ground vehicles get stuck in buildings ==> mission impossible etc. The list is rather long actually but this is not the place.
Hence, for a working mission you need to do a lot of testing to ensure that the A"I" is doing what they are supposed to do and not acting in a silly way. Many things have to be just "right" or for one reason or another the mission goes FUBAR.
Of course, to check that everything works is a lot of effort and not many people are willing to take that on. Therefore, what you get are often missions where a few targets are placed somewhere on an open field for the player to drop some bombs ==> soulless missions. QED.
Also scripting bugs do evidently have a rather low priority. Best example is the S_EVENT_PLAYER_ENTER_UNIT event which is broken for clients since the release of DCS 1.5 (yes 1.5). This might look like a small detail, but this event is needed in many situations. Alone on the MOOSE Discord channel, people who are just getting into scripting and mission design have asked how to use this event in the past two weeks a couple of times. Now instead to create valuable content for the sim, these guys spend a good portion of their time to look for workarounds or just give up again.
Closing on a positive note, a lot of good stuff is there already. Now it's time to make it work better :)