Right, web components and angular js components are an improvement, but they still emphasize manual ASCII coding, which defeats one of the main advantages of GUI components.
Also the strong separation and lack of cohesion between the front and back end systems is a severe limitation.
Almost everyone does argue that.. sort of.. only there usually is no argument. Its taken as a given in most cases.
That belief is more a result of where we have been than on a logical assessment of where we are now.
If your back end team is separate from your front end team, programming in a different language, building a codebase to support multiple departments or multiple third-party integrators with a single web API for a one-of-a-kind world changing application running primarily in HTML browsers, then it may not make a lot of sense to try to package together the back end and front end code the way I am suggesting.
However, if your goal is to create an easy to use desktop-like website/web application building/editing experience that maximizes code reuse across applications (built on the same framework) on a Node.js/WebSocket/MongoDB/HTML5 stack, however, then my approach with packaging the back end code along with the front end code makes more sense. Yes, you may need to add a REST API on top of the back end if you need that.
Also the strong separation and lack of cohesion between the front and back end systems is a severe limitation.