That was actually behind my question, because it was what we used to do, and it causes precisely this problem.
What could happen in my example, would be:
1. Attacking fighter hits
2. Defender moves sub behind casualty line (it can be hit by the fighter because the destoyer is there)
3. Attacking destroyer misses
4. Defending cruiser hits
5. Attacker chooses casualty, and removes the sub
6. Defending sub hits, but........
7. Attacker says: your sub can't hit my fighter
8. Defender says: no, my cruiser hit your fighter and my sub hit your destroyer