This is why I do not longer consider SharePoint as a development platform. If we need to build something we have so many more degrees of freedom to do it outside of SharePoint – talking to SharePoint or any other services through the different end points.
SharePoint should be configured. And you should not have to modify the CSS. There is a gap here, agreed, and that’s the reason people do stuff they shouldn’t. Microsoft need to step up their game here and fix some fundamentals with regards to that. They are on a good path forward, and I’m pretty sure we will see improved stuff in the this area fairly soon.
What I believe is that we (including me) are still living to much in the legacy world of SharePoint. Take a look at some of the more modern SaaS applications out there, Salesforce, G-suite etc – you don’t mistreat those solutions in the same way as we keep on doing with SharePoint.