Your issue, that weapon classes become chumps and spellcasters become gods among men at higher level play, is a problem inherent in all earlier editions of D&D.
For me it's more a Heart of Fury specific issue with me because IWD2's version completely obsoletes Warrior classes due to the absurd amounts of stat buffs dumped upon enemies. No longer are they merely less effective options, but instead relegated to a status of naught but dead weight. You're better off booting a level 15 fighter with end-game (non-HoF) equipment in favor a a level 1 sorcerer/mage. That's a pretty big design flaw.
Even other D&D games don't have this issue at their higher levels. Warriors still serve as useful vehicles for spellcaster buffs, they're still good at mopping up disabled foes, and they can reliably dish out some hard hits in a fast manner. Certainly they aren't as integral as spellcasting classes, but at least they weren't rendered completely worthless as they were in IWD2's Heart of Fury.
Basically Heart of Fury was just the BI/Obsidian-cru exacerbating existing flaws in a system with some boneheaded design. It's a relatively trivial example, but it's one of a very long list they've been writing over time..
Both are filled with filler (especially IWD) but 2 had a lot of unique fights. I went through a great effort to list them all in my official Codex article.
IWD2 is certainly better than it's predecessor in terms of encounter design, but it still is pretty flawed in this regard:
-Some of the encounters are stupid gimmicks. Things like the ethereal fight, the Sherincal stair-slide, and the explosive barrels come immediately to mind. And while I respect the idea of scripting certain foes as "generators" (like in the 4th level of Dragon's Eye in IWD1; an actual standout encounter), spawning Warg Riders or Black Raven Tribesmen behind my party over and over isn't very fun (especially given the fact they already did it "right" in the previous game). The less said about the Filler Squares or the Monastery Trials (mercifully, evil parties can easily skip those by slaughtering the monks) the better.
-Many bosses are too defined by their defensive capabilities rather than their offensive capabilities, making the encounters far more linear than they would be the other way around. Both IWD games loved to stack up tons of powerful resistances and immunities upon monsters as the main challenge. That was pretty much IWD1's entire boss design; "immunity to +X weapons or less" was practically the sole challenge posed by many encounters (which played
so well with the randomized loot). IWD2 is a bit better in that it actually branches out into other sorts of "protections", but it still makes for some kind of wonky fights where the fight is a triviality if you have the right tool or a slog/unwinnable if you don't.
For a simple example, take the fight against the Wisps in the Fell Woods. It becomes incredibly annoying if you don't know their weaknesses or have access to said weaknesses, but poses very little threat to the player's party. Just plain annoying. Or try some of the later-game bosses. Take the black dragon in Chult; if you know the one thing he doesn't resist well is lightning (I think) and that, yes, Arrows of Piercing count as +4 weapons he becomes
much easier.
As a result of this sort of design, many boss fights not only become linear, but become much more "meta-gamey". In RPGs you can see what the opposition is throwing at your characters and come up with countermeasures. But you can't see an opponent's character sheet and list of immunities (unless the game is kind enough to provide an Analyze skill a la many jRPGs or you're playing KotC) forcing you to rely on trial and error. And it also makes for very lopsided, unsatisfying fights. Turns out the avatar of a god, Xvim, isn't immune to being stunned by an eighth level cleric spell and then hacked to pieces, helpless. I couldn't de-buff him to tone down his melee juggernaut prowess, I had little hope of laying down a barrage of offesive magicks to overwhelm him, but by knowing ONE WEIRD TRICK (DUNGEONMASTERS HATE HIM!) the battle is over with not a whimper following a tough fight, but a gangbang on a helpless opponent.
-Isair and Madae. Fuck that fight. Whoever's idea it was to repeatedly blast the party with a huge alignment hoser...well, I hope they don't think that was good design and have learned from it. When I iron-manned IWD2 with an evil party, that fight was almost as much of a joke as Xvim turned out to be just because Madae's Blasphemy spells weren't stunning most of the party, allowing all their goons to shred the helpless characters in addition to whatever sorcerous abuse Isair would send their way.
-And there's certainly some other assorted complaints I could make, like Chapter 3 being heavy on filler enemies/encounters, the incredibly disappointing white dragon fights, the horde of dumb undead in Kuldahar Vale, and most of Dragon's Eye being a bunch of crap.
Don't get me wrong, IWD2 does a lot of good things. It pushes the Infinity Engine scripting pretty far, and to good effect with certain fights like defending the Heartstone, the siege of Targos, or trying to save the bridge. Some fights like the Holy Avenger scruffle was masterfully done. I liked the way that handling situations in certain ways might change up the encounters in an area (like treating the Selune Priestess poorly makes her bring in a bunch of friends in a lter area to gank you). And I liked how they really tried to add mages/priests into many enemy bands without having them steal the show; goblin, orc, and troll shamans come to mind. But it certainly messed up in a lot of ways.
KotC can be easily broken with crafting spellcasters (and yup, weapon classes become chumps). BG2 can be broken in a million ways. Shattered Lands (with the exception of the final boss) is very easy. D&D problems.
Of course games can be broken. There are very few games that can't. I really struggle to think of any RPG that is unbreakable or doesn't have some terribly imbalanced strategy that overshadows all others. The point is that BI/Obsidian, among other developer-crus, have a habit of making games with uninteresting content that makes it hard to overlook imbalances or broken systems. A simple system, or one that is less than perfect can go far with a game comprised of solid, interesting content. Players are more willing to tolerate some cheese or balance issues if they are constantly presented with well-crafted, unique content. A lot of developers fail at this though, and should be worrying more about their inability to do so rather than constantly trying to reinvent the wheel and find the "perfect" system.