You can have armors geared to protect against different kinds of damage.
eg
The OP mentions a few specific counter-tactics (which, to be fair, have also been suggested before), like enemies that start hidden, or on Overwatch.
The way I imagined this is that the game would look at what and how causes most damage on average and react to that proportionally. So if the player relies more on one approach than on any other (for example, explosives) the AI would allocate a very large chunk of its budget to ablative armor, putting it on most of its creatures. If the player uses a mixed approach, the AI would allocate the budget accordingly - some enemies will wear ablative armor, some have some protection against paralysis, fire, acid, etc, some will have a Dune-like shield , etc.
In the end the point is not to make the enemy invincible, just a little more interesting to play against. Something like “oh, I can’t use nades against this Arthron, but I can against that other one over there”, would go a long way towards that, IMO.
Edit: typos