Probably the best way to keep heroes strong in combat without making them overpowering is to make their defensive capabilities somehow dependent on nearby troops. This would make them many times easier to kill if they were isolated from their army (therefore preventing the "commando hero" thing from ever happening) while also keeping them difficult to kill while they remain within their army.