I like the analysis and the questions asked. I get the feeling that many people don't really inquire "Do we know what we're getting ourselves into?" on the onset of the project. Schedules are frequently set by wishing, rather than in-depth analysis.
I think that one of the biggest mistakes in verification is poor definition of the expected outcome of the project. This is a double edged sword, on the one hand if you don’t clearly state what features in which configuration are important than people might skip one of the critical ones, but overstating and defining an amorphous “0 bug goal” can have your engineers rat-holing for weeks in inconsequential spec gibberish.
Back to languages; Once you have defined a clear project goal, it will be easier to research which language gives you the capabilities to define your simulation goals (functional coverage points), create meaningful random data, and execute your project smoothly.