Autotargeting is important to keep turn times low. Giving players that much control over battles dramatically increases the time it takes to get through each battle. If the player is willing to take that time to fight each battle individually, they will perform better against the A.I., the A.I. will need to be improved to fight these battles, and now players that don't want to choose targets now have to because if they don't, the A.I. will sweep them. I think the better solution is to clearly state to the player in what order ship classes will target, as well as making the targets intuitive.
Example: Fighter vs Bomber class ( Think F-18 vs A-10 or X-wing vs Y-wing)
The fighter should in theory be designated as a way to destroy other smaller enemy ships like other fighters or bombers, but they are less effective against frigates, cruisers, or battleships. It would make sense for fighters to target smaller ships like fighters, bombers, and gunships before they go after larger ships.
Bombers on the other hand are good at punching through heavily armored large ships because they carry larger payloads. They are slower, and less effective against smaller ships such as fighters as they are unable to outmaneuver them, and their munitions often travel slower. It would make sense to make bombers target larger ships first before trying to fire at smaller ships.
This brings me to my second point, how do you portray this in Gal Civ?
As you've mentioned, you can do this through modules. Making changes to how the weapon types work. Changing variables such as range, power, fire rate, critical hits, accuracy. The problem is many players utilize the auto generated ships, and don't want to fight their way through the ship designer. On top of that, the A.I. needs to be able to generate useful fleets to combat the player.
I think the simplest and best way to show the difference between classes is to give them buffs and nerfs against other classes. Giving 200% attack bonus to fighters against other fighters, bombers, and other small classes makes a fighter distinct from a bomber without increasing the difficulty for the players who don't use the ship designer, and makes ship and fleet creation about the same level of difficulty for the A.I.
The A.I. can combat the player by looking at the makeup of the players fleets, and building ships that are strong against whatever classes the player is building.
I don't consider it a fun game if I steamroll the A.I. and vice-versa. A fun game is when the A.I. made meaningful decisions and it led to a close match. Even if I lost. I lost a war once in GC III where I was forced into full retreat losing all of my main planets and my home world. I stayed alive by conquering the guy below me. One of the best games I ever had.