Regarding responsive layout, doing it "by hand" (probably with the help of CSS preprocessors like Sass), figuring out what you want in your layout and how it can move and change on different screen sizes is probably likely to produce a higher quality final result and be more difficult (and instructive) than relying on a CSS framework and making your site look like everybody else's site.

Two more fundamental problems with "plugins" altering the appearance of what is rendered:
Duplication of work between normal and fancy rendering
Additional data required by fancy rendering, that is just missing in the basic model data.
For example, smoothing a model given as triangles requires telling which mesh edges are smooth and which ones are creased

If you need to ring the bell five times consecutively so someone thinks it's five o'clock and feeds the ostriches leaving some part of the farm unwatched and undefended so the character can go in and do something, making it exactly the same type of puzzle would be elegant:
pull the bell rope and then run away...
after entering the bell tower by stealth....
while the priest (and/or other personnel) is out...
because they rushed out of the church to take care of ...
a diversion that the player set up nearby
Interesting complications to throw in:
Use of keys (suitably stolen in a complicated way) to access the bell control room
Ringing a bell five times isn't instantaneous, the priest could come back before the character is done. Some plausible diversions might turn out to cause too little delay to serve the purpose.
Alternatively, there are silly and complicated unorthodox ways to ring bells:
throwing objects at them, possibly with a catapult or other device, without causing damage
tricking someone into ringing them
if the bells are automated rather than played by hand, hacking into the control computer

It depends on the design of your game.
First of all, you say a switch statement would be "huge": does it mean that there are going to be many potion "SKUs", many essentially different potion effects requiring separate specific code, or both? In general, switch statements are appropriate for a small and stable set of alternatives: probably not potion types.
If potion effects are shared between many potions (e.g. one potion gives a lot of mana and heals a few hit points, one gives a little mana and heals many hit points, one heals hit points only) or with other sources (e.g. a bath in an enchanted fountain restores mana or heals hit points like drinking a potion) you can reduce duplication by focusing on the effects (e.g. a routines to heal N hit points , add N mana, etc.) and describing potions with a data structure listing their effects and other properties (e.g. "this potion is called potion of invigorating healing, it is pale blue, it heals 45 hit points, it gives 3 mana, 3 energy, 0 experience"), even without an ID. Then when a potion is consumed you would go through its description, processing general drinking rules (e.g. choking because of bad taste) and effects one by one in a standard order, without low value potion-specific code,
This data-driven approach would facilitate potion variations by allowing them to be anonymous, whereas potions with the same ID would have to be identical. Potions could be generated randomly (e.g. average strength of healing potions increases proportionally to character hit points, and they are all a "potion of healing"), altered (e.g. by mixing them), deduced from other data (e.g. distilling a corpse produces a potion with effects that depend on the creature).

Mixin classes imply inheritance, and inheritance defines a class hierarchy whether you want it or not. You don't have the privilege of "avoiding" inheritance by hacking around with reinterpret_cast and the like instead of using polymorphic pointers properly.

Why? Shouldn't you have a single leaderboard for "view switched as the player sees fit"? If switching view between first person and third person is a meaningful tactical choice, there doesn't seem to be any reason to forbid it; if either view is strictly better, it will be used almost exclusively in the good games in the leaderboard, but it isn't a problem.
The only role I see for forbidding view switching is in multiplayer games where some or all players agree to use the bad view, respectively as an handicap or as an increase of difficulty.

This also means that optimizing access from a component of an entity to other components of the same entity has limited usefulness. Most computations are going to involve components of different entities, and often the same type of component for many entities (e.g. collision detection and response using the respective geometric shapes of entities).

The appeal of FPS games is unusually realistic and immersive combat.
Even with implausible weapons and unnatural physics, the experience of running, jumping, turning, looking around in a solid environment is close to the player's body perception in a way that is impossible for other kinds of equally twitchy realtime games (e.g. a RTS where you scroll a map. point with a mouse and press buttons or a driving simulator where you learn to master the controller, not the vehicle itself).
FPS games can have genuine differences, but the fundamental similarity makes the differences minor and, from a more technical point of view, games can be usually altered drastically with easy and "superficial" tools (level design, weapon selection and if applicable placement of monsters, traps, bonuses etc.) making FPS design a matter of making a capable FPS engine first and defining gameplay details second.

From a professional point of view, being paid should be the first priority. If you have no control and you are sure the project won't be profitable, it's time to let the more optimistic members of this hopeless team fail without you, and get a paid job.
Consider the money you invested as the cost of learning game art animation etc. and acquiring valuable experience about teams, projects and people; it's clear from what you write that the price of wisdom could have been much worse.

Remember you don't need full flocking computations for every zombie at every frame: they can decide periodically (go straight for N frames unless they hit a wall), abandon flocking for a variable time while they follow a fixed path (e.g. from the beginning to the end of a narrow alley), spread computations over multiple frames.

Maybe the boss (assuming it sees through fog) could throw something at the player:
it would provide interesting dodging action (perhaps while the player is busy dispersing fog)
it would indirectly give away the location of the boss, so that attacking blindly (e.g. by aiming a crosshair to an arbitrary place on the screen) becomes meaningfully skil-based rather than pure guessing.

You might be overestimating the effort to make your game look good enough.
If you don't sell the game, and possibly earn a little money by letting people play it online freely on your site (attracting visitors, advertisements, donations, maybe gambling, publicity for a future physical version...) there's no need for fancy graphics with expensive assets; you just need dragging and dropping cards, chat etc. with a pleasant UI.
As examples of this relatively spartan card game style, I recommend looking at https://epicmafia.com/home (particularly the "games" lobby, Texas Hold'em in particular, but also the fancy chat and the use of icons in the main mafia game) and https://www.alternativeoutput.it/brisk/ (visit around lunch break GMT and prepare to be insulted for playing badly).

This seems a backwards approach to designing your unit roster. I don't think you want to spend time and money on assets and game balance work for redundant units that serve only to confuse the player. Instead, you should start with a small set of units that work well together, introduce advanced newer units that disrupt existing tactics, and then figure out what they could be. For example, what unit can seriously threaten naked cavemen with stone-blade axes? Someone with good ranged attacks: naked cavemen with stone-blade axes and several spears p.c., which should be at the exact same tech level but much more expensive.