About (a) and (b), in my first 2 jobs this was a non-issue since my boss always had the last word. I guess today's Agile/Scrum situation is a big improvement over that, where people work data driven and not by personal taste of one person.
Anyway, one could solve it by maintaining a ratio of people with a lot of experience.
(a) A Designer needs to be on the team that can do a Corporate Identitiy (CI) => this way it's possible that Engineers create their own Bootstrap
(b) Either solve it top-down by having an engineer with enough architecture experience; or have architecture guidelines in place / develop them consensus-based
At most places there are very concrete guidelines about codestyle, usually ensured by linters. One can also put more emphasis on architecture style