I think the degree of footgun danger depends a lot on the language and the application. I agree that C and C++ are dangerous until you really know what you're doing, though IMO most of the danger comes down to memory management and that's a portable skill, once you've learned it. That being said, I don't have a lot of experience with C++. C was my first language so I'm used to plain old normal boring pointers (are those "dumb pointers"?) and I've never understood why C++ needs 9 billion types of pointers.
Go has one particular footgun - loop range variables. Other than that, IMO high-level, garbage collected languages don't have major footguns like that. My first job was writing a bespoke inventory system for a manufacturing company, and I wrote it in a language I'd never used before - C#. In five years the only major issue that had was due to my inexperience with SQL and had nothing to do with C#. And though I haven't written nearly as much code, I'd say the same about Java, Ruby, Python, and JavaScript.
Making good UX is fucking hard. I say UX because making it good is really about the user’s experience, not graphic design. An ugly front end can be good if it’s intuitive and easy to use. But a visually gorgeous front end will still be garbage if it’s clunky and confusing.
It’s really something you have to experience to fully understand. Ultimately it comes down to this: front ends have to deal with people, backends only have to deal with computers. So backends can be cleanly organized and well structured. Applying backend design principles to a front end will get you a CRUD interface - something that’s usable but no one really wants to use.