Configuring Webpack is still pretty bad. If the zero config works for you, great. But if you need to configure it yourself, it's really verbose, it's really complicated, and the documentation is a bit thin.
SplitChunks in Webpack are like black magic, they work but you don't have any idea how, and when they don't work, you still have no idea how. And you don't know if it's because you didn't configure them properly, because you don't know what is configuring them properly, because the documentation on them is so bad.
Maybe I'm just bad at configuring Webpack, but I still don't understand how many things in Webpack work, and it's given me a lot of headaches, even with the "zero config" Webpack 4.
Looking at JavaScript build tools today and ridiculing it makes as much sense as ridiculing the width of car lanes (from width of wagons) or ridiculing the width of rockets (width of railroads).
Create-react-app works just fine with the 80% case you wanted so badly for webpack team to implement. (Not to mention there are easy ways to make incremental changes without ejecting.) But why let that stop you from writing a rant about webpck’s lack of default either :)
I just looked at it a minute ago.
As for the rest you are equally wrong in anything from assuming that webpack 3 made configuration easier to assuming that configuration became easier just because CRA hides all this complexity from us.
There's only so many hours in the day. There are better things in life than to fight a build tool.
I personally always found a solution with Webpack. I find this amazing for a tool which is so young and written in a language without static types.
With Webpack 4 and Parcel especially, these tool are both zero config and configurable. Your point 1 and 3 are actually not mutually exclusive, and repeating the meme just sounds like you're perhaps out of the loop for a bit.
While the Javascript developer experience truly was horrible a few years back, it has dramatically become better. Try it, and you might be pleasantly surprised :)