Lately I've been in the weeds designing my games magic system from the ground up.
Whats been interesting so far is just how far Ive been able to push my perspective that combat magic can be as high octane and jacked up as one wants, so long as utility magic is reasonably limited.
How I approached that came from two directions, lore and mechanical. Lorewise, magic is inherently dangerous; it fundamentally isn't capable of doing anything without destroying something. This basic tenet gives the fiction justification for splitting magic up into two different Skills (sort of paralleling the difference between say, Light Armor and Heavy Armor, but not quite) which govern how magic is accessed and utilized.
The first, Arcana, is considered to be the raw manipulation of The Mana. The user simply draws upon their internal stores of it to make something happen. Its through this skill that the improvisation of magical effects is attempted, which mechanically includes nearly all utility uses one might want.
The second, however, I have named Runewrite, the structured application of the Mana for a specific effect. Runewrite is what governs the explicitly codified Spells most are familiar with from other games, and is the skill that guides the creation of such spells, as all characters who use them will be intended to create their own. Unlike Arcana, which isn't going to terribly useful for a Combat (outside of my in-progress draft of my Sorcerer, that is), Runewrite is all about combat, and through it you can push spells to incredibly high highs, and can indeed access some of the few explicit utility spells that will exist in the game (behind a high skill gate and a higher crafting gate).
But what really keeps these balanced in my games context, aside from being split up so that no character is automatically good at both, is something Im integrating from DCC: Corruption.
As noted, magic in this system has to destroy something. So, for users of Arcana, while they can generally reliably succeed at casting any basic little spell effect they want once they get a few skill points in (but will still need to "get gud" to fire off really critical effects), it will often come at the cost of taking on a Corruption; sometimes these will be innocuous, other times debilitating, and sometimes even near deadly. Trying to spam your way out of situations is not ideal, and even those who max out their skill with Arcana will still be quite vulnerable.
All of which, finally gave me a solid enough basis to get after designing the classes themselves, the first of which in the Sorcerer is almost finished for its initial draft. Its core mechanic is also a adaptation from DCC in a magical version of the Mighty Deed, which I've called the Mark of Arcana. The basic idea is that the Sorcerer is designed as a mostly simple to play magical brawler, making improvised spell attacks utilizing Arcana Dice to drive damage and to enable you to make a Mark of Arcana, letting you, as with the Mighty Deed, do more or less whatever you want, with the only limitation being, like my Rogues Cunning Act, also a Mighty Deed adaptation, that whatever effects you induce cannot cause any direct damage in excess of your Arcana dice. If you rolled, say, 25 total, then thats as much damage as you'll do with however many Casts (like Attacks for Martials, but for mages) that you have, and that anything that isn't strictly a combat effect (offensive or defensive) will induce an automatic Corruption. So you could absolutely use your Mark to unlock a door in the heat of combat, just hope you have to deal with tentacle arms instead of a heart attack. (I just made these up lol)
But, in addition to this, the Sorcerer also gets Master of the Elements, an ability chain that gives them a variety of unique riders for all 10 of the different Elemental spells. For instance, the chain opens with Crackling Fire, which gives you a typical Chain Lightning effect, but also gives you the ability to rain Embers with your fire spells. These Embers emit at random from your fire magic and you can will them to be placed anywhere on the battlefield. When any entity enters the Embers tile, it explodes dealing 1d6 damage.
And the Sorcerer has more than this, but I want to keep going with that Ember effect so I can get to the point of this ye olde essay, as one of the subclasses, Fire Caller, is built around greatly expanding on it.
Fire Caller starts off by making the Embers more frequent and twice as powerful. Firing off fire magic at this point will start to litter the battlefield with them. As the Fire Caller progresses, the Embers become even more powerful, and it eventually culminates in the capstone Immolator, which among other things induces the Embers to, rather than simply peter out as they do normally, instead automatically explode at the end of the round. Fire Callers at this level are basically literring the battlefield with potentially a dozen or more mini nuclear bombs. Great fodder for the Martials and other Casters that can fling mobs to certain points on the battlefield. An Orc might get its head bashed in by a Barbarian, weakening it, only for that Barbarian to then use their Slam! reaction to throw them into the middle of some embers. Big booms, heckin good time.
Now I explained all that to support the original point, that combat magic can be as nuts as you want without issue. In this context, that same Barbarian can easily keep up with the damage the Sorcerer is putting out (they're actually mechanically symmetrical in that regard, funnily enough) and if that Barbarian happened to be a Beastheart Barbarian, they'd actually be outpacing the Sorcerer.
And meanwhile, both classes have a slew of things they can do for utility not only within their ability chains but also across the variety of skills both would be pursuing to level up, with virtually no overlap.
With magic set up the way it is, and the skill system a foundational part of the game, and yes, deliberately designed classes, theres a balance that lets everybody feel like they're going hogwild when mechanically they're right in the grooves they ought to be in.
Thats why, in regards to this topic, my view is and ever will be to just nerf the crap out of utility magic. Too many of these spells in DND only exist as "turn off these mechanics buttons", and even with reasonable failure rates, just their explicit existence is going to cause framing issues in regards to whats possible and what tools players actually have.