Between the custom enemies I've designed for better (and longer) difficulty curves and quests I've played, there are a few things I've settled on.
Obviously, the default Gold Ring 1/8 defense is a little too hard to balance around, so recently I've been trying to balance around Red Ring 1/4 defense as the maximum possible defense (ignoring any Peril Rings, since those tend to only be active at 3 hearts or less usually). I feel a good rule of thumb is, the most damage you should take from enemies late game is 1.5 hearts with Red Ring, and that damage should be rare.
Also from a few quests I've played, suddenly introducing common enemies that take 3 or more hits from the Magic Sword in Level 6 or earlier is... not fun. Especially if the Magic Sword is optional. Level 6 in the official 4th quest comes to mind. A lot of Zelda Maxi also comes to mind.
Actually, any common enemy that takes more then 3 hits with your best available sword (besides Wooden) just makes things tedious. Rare enemies and "mid-boss" enemies are the exception.
Here are a few enemies I made for Randomizer Returns, which is supposed to have the Z1 feel, but with a slightly larger difficulty curve.
Level 2 Aquamentus
HP increased to 24
Damage and Weapon Damage increased to 8
Best used in Levels 4 and higher.
Level 3 Darknut
HP increased to 20
Damage and Weapon Damage set to 8
Random Rate and Halt Rate set to 4
Homing Factor of 128
Step Speed of 65
Fires 1 Shot Pattern Sword Beam
Drops Bombs
Appears in Level 7 and above, when Level 1 Darknuts stop appearing
Gibdo (Weak)
HP reduced to 6
Damage reduced to 4
Homing Factor reduced to 64
Step Speed remains at 50
Drops Hearts
Appears in Levels 1 - 3, before regular Gibdos appear.
Goriya (Stronger)
HP increased to 14
Damage and Weapon Damage increased to 8
Hunger is 4
Random Rate and Halt rate set to 6
Homing Factor 128
Step Speed increased to 60
Drops Bombs
Appears in Levels 7 and above, when Level 1 Goriyas stop appearing
Throws boomerangs normally. Something to note, Boomerangs are thrown very suddenly, similar to how Blue Wizzrobes fire magic.
Vire (Weaker)
HP reduced to 4
Damage reduced to 2
Step Speed reduced to 40
Drops Life
Still splits into 2 regular keese.
Appears in Levels 1 - 3, before regular Vires Appear. Given how difficult Vires become if Z-axis movement is enabled, this is a good introduction to the enemy type.
One other thing to consider. Pols Voice would be a very difficult enemy without the Arrow Weakness. Ideas to balance difficult enemies include similar weaknesses. One example is making Vires with more than 8 HP one-shot by bombs, so the player has an option to prevent them from splitting if they lack a weapon with enough damage. Or if you want, make an enemy take 1/2 damage from all weapons except those it has a weakness to (Warning, Boomerangs and Hookshots seem to ignore the 1/2 defense flag, most likely due to how the engine handles those weapons stunning suddenly doing damage as well).
On the other hand, making an enemy take less damage from a few specific weapon types can also be clever. No one expects the Wizzrobe that takes LESS damage from reflected magic.
Finally, you don't have to stick to powers of 2. If Bats do 6 damage, why can't there be a 12 damage (3 Hearts) attack? Likewise, Goyiras go from 6 HP to 10 in Z1. There is no excuse to introduce the next level of enemy that is double the stats of the previous one.