At low levels, like LMoP, necromancers work fine. At mid-to-high levels, things go nuts.
At mid-levels, especially right around the level 9-13 area, necromancers can command armies of skeleton archers dozens strong. It’s fairly easy to issue commands to archers that allows them to send an obscenely large rain of arrows down on enemies, and few things are more deadly in 5e than a large number of incoming attacks. Damage reduction is very rare and AC isn’t often 20 or higher until the end game, so your skeletons aren’t going to be fishing for crits against level-appropriate opposition. A level 11 necromancer has 3 third-level spells that can command up to 4 skeletons each, 3 fourth-level spells that can command up to 6 skeletons each, 2 fifth-level spells that can command up to 8 skeletons each, and 1 sixth-level spell that can command up to 10 skeletons, for a total of 54 skeletons. CR 11 creatures – who are supposed to be a decent encounter for the entire party, not one character – typically have an AC in the neighborhood of 17. A skeleton archer has +4 to hit and hits AC 17 40% of the time, and deals an average of 5.5 damage for each hit. 5.5 times 0.4 hit rate is an average damage of 2.2 per skeleton per round. With 54 skeletons, he’s got a per round damage output of 118.8 (slightly higher, actually, I’m not counting crits). CR11 creatures usually have between 150-200 HP and will be dead in two rounds. The roc and marid will take three.
In those three rounds the monster has basically no chance of killing the intervening seven hundred and two hit points of skeletons standing between them and the necromancer, nor do they have particularly good odds of sniping the necromancer for what is, if the necromancer is smart enough to make CON his #2 priority after INT (this even makes sense roleplay-wise, since it’s a perfectly acceptable archetype to have a necromancer be filled with the unholy stamina of the dead), over 50 HP. The roc has the best odds, because it can fly over the skeletons to target the necromancer directly with an average of 50 damage, so it only needs to get slightly lucky to drop the necromancer in one round, plus the necromancer is unlikely to kill it until it’s had two rounds to act, maybe three depending on initiative. It’s also got a fly speed greater than the effective range of the skeletons’ shortbows, so even when engaging at visual range it doesn’t have to spend a round taking arrows just to get in combat distance.
Still: One out of a half-dozen CR11 creatures stands a chance against a level 11 necromancer. The others are lunch meat. Most of them won’t even make an appreciable dent in the skeleton horde before dying. The necromancer doesn’t care that he has to sacrifice all of his level 3+ spells to do this, because nine spells would never solve half the encounters that his vast skeleton army can.
It’s not as bad at levels 15+. Just four more points of AC causes skeleton hit rates to drop by half, and the rate of new spell levels bringing in more skeletons to the horde is barely keeping pace, which means the average damage per round is only slightly higher (140.8), but most monsters now have about 300 HP, which means they take 3 rounds to kill. Monsters also have AoE effects slightly more often, which means that 3 rounds is more often actually enough to chew through a good number of skeletons, although it’s still the case that basically no monsters can win (closest is a stalemate by assassinating the necromancer before succumbing to skeleton volleys), just that the necromancer is much more likely to take appreciable amounts of damage to his horde if he fights several in a row. That still makes him approximately as powerful as an entire four person party.
To keep this post from getting any bigger, I won’t go into detail on mirror match or swarm battles except to say that the necromancer can split his damage into discreet chunks and this means he’s equally effective against lots of little enemies as he is against one big one.
So, are necromancer lords overpowered? Yes. Very very yes.