React vs HTML/CSS/JS is a stupendous difference, and the barrier to entry, IMO, has gone up rather than down. At the start you basically have to be told what to do, and eventually you have some control over the output, if the tools you are trusting continue doing their job. Most people will never learn how the tools they are using actually work, and the massive surface area required to cover for this understanding is a big deterrent.
LoC is the wrong benchmark. In C++ you link against a large set of libraries that have already been compiled to binary, hiding the LoC. glibc source alone is 10k files.
Javascript libraries are source instead of binary. What's the problem?
The React CD takes a minute and a half longer than the backend one, and the back end one has testing and libraries of its own to pull as well.
Some of this comes down to SCSS, Babel etc, but most of it is built into CRA anyway
Also modern compilers condense C++ down pretty well. You can write something on godbolt.org and see how much waste there really is. You might be surprised.
Gets a lot better when you're visiting lots of such pages, then you have a million versions of each library in your cache.
Edit: For full transparency, this is the breakdown:
index.html = 1.37KB
main.hash.chunk.css + 2.hash.chunk.js + main.hash.chunk.js = 887B
logo.hash.svg = 3.2KB
logo192.png = 5.47KB
My biggest issue is with people pulling in dumb libraries on npm that seem to live on someone's self hosted server though, so some branches will CD just fine, while others don't, and then I have to troubleshoot why something completely out of my control isn't working. Ugh
I'm not saying React couldn't be better but it is super popular and enables a lot of applications by a wider range of developers even if it is a more bloated.
Just like C++ vs. assembler.