Writing stuff in C or C++ doesn't give you substantial perf benefits over assembler in most cases, so they don't belong to this list.
That aside, no, I don't think we shouldn't be using higher-level abstractions. The problem is that we're using them without any consideration of performance impact at all, and increasingly without consideration of the actual cost/benefit ratio from developer perspective. For that matter, at some point, if you keep piling abstractions on, the amount of leakage from them all the way to the top layer is a tax on the developer operating on that layer - and that tax can, at some point, exceed the purported benefits of the abstraction.
Do we really need to package a browser with every app just to make it easy to do (horribly designed more often than not) cross-platform UI? Or is it just the most expedient hack to avoid having to solve that problem properly?