The question is, does each domain ID in each fabric
have to be unique? Or can both fabrics have a switch
with domain ID 1, 2, 3, etc..?
What dynamox said is correct.
However, one thing to be aware of is that you may get duplicate fibre channel address (FCIDs). Which is not going to stop anything working, but it can be confusing, especially to the support centre when we are trying to figure out what is plugged in where from an emcgrab or emcreports output!
e.g. If you plugged your 2 HBAs into 2 McData switchs which each had domain ID of 1 and you used port 1 on both (most people use same port for simplicity) then your FCIDs would be identical. The domain ID makes up the first 2 digits of the FCID. If you were getting SCSI errors, the first step would be to figure out which HBA is getting the errors and we would look at its FCID to figure out the domain ID of the fabric which needs to be investigated. In this situation its a little confusing, but not a showstopper since we still have WWNs.