I think the reason why he mostly limited his comparison to JIT-compiled implementations is that the most popular languages, at least right now, are not very amenable to AOT optimization. So, taking JIT compilation as a given, he explored the language properties that help or hurt optimization.
There are always trade-offs, of course. Sometimes, to gain maximum performance without requiring the overhead of JIT compilation, it makes sense to use C++, so you can be explicit about stack versus heap allocation, boxed versus unboxed values, etc. But I think we can agree that many application developers want to work at a higher level of abstraction while still getting pretty good performance. In that context, one of the languages that he compared is probably a much better fit than C++.
There are always trade-offs, of course. Sometimes, to gain maximum performance without requiring the overhead of JIT compilation, it makes sense to use C++, so you can be explicit about stack versus heap allocation, boxed versus unboxed values, etc. But I think we can agree that many application developers want to work at a higher level of abstraction while still getting pretty good performance. In that context, one of the languages that he compared is probably a much better fit than C++.