I also dislike how the Escort/Capital combination can be abused. It feels like the only viable strategy against a difficult enemy, but it comes close to cheating. It could of course be a deliberate design choice, but I don't really believe that.
Like others, I too spent time trying to mod the battlebehaviour, looking for an anti-abuse fix. The only fix that seems to work so-so is to have each role prioritize itself, because then they can't hide behind any another role. But that makes the role name seem silly, since they actually don't mean what they are supposed to mean anymore. And a player can still abuse it, by putting "just guns" ships in a role that the AI never puts anything dangerous in (like guardian). I am beginning to think that there is no satisfactory solution from just fiddling with the battle behaviour.
Instead, I think that the complete freedom of picking roles is the problem. Problem examples: Huge hulls as Interceptors, Tiny hulls as Capital ships, and ships fitted with weapons in the support role. If this freedom was restricted, it would be easier to create a battle behaviour that is hard to abuse, and still have the role names mean what they should mean.
Example of how restrictions can help:
Assume these limitations:
Interceptor (tiny, small)
Guardian (tiny, small, cargo)
Support (any size but no weapons)
Escort (medium, large, huge, the assault drones from carriers)
Assault (medium, large, huge)
Capital (medium, large, huge)
And a few words about the battle behaviour. The ships are basically divided into two different groups. The first group (escort, assault and capital) have big ships. The second group (interceptor, guardian and support) have small ships. And then each group will go for the identical group on the enemy side first. This seems like the intended behaviour based on the role names, it's not something I made up. What it boils down to is that a fleet can loose its support even though they won the battle, and that is a pretty cool way to stop an invasion fleet.
Target priorities (changes: The top three targets their own role first. Interceptors kill support immediately after guardians)
Capital (starts @ 1400) -> Capital, Assault, Escort then Interceptor, Guardian, Support
Assault (starts @ 1500) -> Assault, Escort, Capital then Interceptor, Guardian, Support
Escort (starts @ 1600) -> Escort, Capital, Assault then Interceptor, Guardian, Support
Interceptor (starts @ 1100) -> Guardian, Support, Interceptor then Escort, Assault, Capital
Guardian (starts @ 1100) -> Interceptor, Escort, Assault, Capital, Guardian, Support
This isn't perfect. But there are no role-combinations where a ship will be safe. And Tiny and Small ships will fill a function late in the game too which i think is nice and adds diversity. It should also be possible to make the AI deliberately protect or attack the support role, just by adding small ships to a fleet.
edit: minor tweaks