Submarines can pass through enemy naval units to attack on the other side as long as there are no destroyers present in the sea zone being passed, correct?
The attacker decides whether to retreat/submerge before the defender decides whether to submerge, so your friend could retreat before you could submerge.
Subs always can only hit naval units. It doesn’t actually make a difference in which step they fire when an enemy destroyer is present, as long as you can keep track. I prefer to roll black die for subs, white die for fighters, and in this manner get 2 types of units rolled hopefully in one toss of the die.