So, this is more or less what I have in mind for handling damage without having to order every system first. For examples, we'll use a hypothetical ship with 5 S, 5 A, and 10 internal systems of 1 HS each

General

As normal, shields take damage first, then armor. Shield-skipping still works. Where it changes is that once 1 or more A are damaged, there is a proportional chance for the next hit to damage a now unprotected spot. For our example ship, once the first A is damaged, there is a 20% (1-in-5) chance for the next hit to avoid armor altogether. If armor is bypassed, then each internal system has a chance to be damaged based on its HS. Again with our example ship, if no internal systems are damaged and the ship takes a no-armor hit, each system has a 1-in-10 chance to be hit. If a system took up 2 HS, it would have a 2-in-10 chance.

Obviously, this is going to require a fair bit of random number generation on my part.

Deep Hits

If a deep-hit weapon (like the needle beam) hits armor, it destroys that armor and 1 internal system. If a deep-hit weapon misses armor, it destroys internal systems up to the number of points of damage (unless an internal system takes more than one 1 damage point to destroy).

Precision

Precision weapons can "call their shot" IF the firing ship (or a ship in its datagroup) is sufficiently close to an enemy ship to know the location of its systems (I need help with this as I still struggle with the scan range stuff).

I am open to suggestions.