The Dream and the Waveblaster Header are different devices.
It is like two soundcards in one. The crystal codec chip has the usual SB Pro/WSS/FM Synthesis/MIDI features. They are all configured by PnP.
But it has the possibility to attach additional hardware, where the Dream DSP is attached. This additional hardware device is configured with a port and irq, resourcewise representing a MIDI interface. Lets call this MIDI 2, as the default MIDI of the Crystal Codec Chip is the external connector or the Waveblaster Header.
(external MIDI Connector and Waveblaster Header are the same, you can use only one)
This means the Crystal Codec looks like a SB Pro+WSS+FM with PnP , you can also configure where the Dream DSP is mapped into I/O.
So I put the default MIDI of the Crystal Codec to P330 IRQ2. Thats where the DB60XG is on the Waveblaster Header
I put the Dream to P300 no IRQ (IRQ is not really needed).
If you got nothing externally connected and nothing on the waveblaster, you simply put the Dream to P330 and disable the MIDI-1 of the Crystal (or put it to P300).
In the above post about GSPlay, SB is just a naming in GSPlay. The point is what Name refers to which MIDI Port.
Due to PnP you can even exchange ressources and leave games at 330.
If you want Dream, you configure it at 330, if you want Waveblaster Header -> move Dream to some other Port and set MIDI-1 to 330
Only exception is MegaEM, since it catches the I/O access to 330, before it reaches hardware, you can simply load it over any real hardware at P330 and it will play on GUS.
Thats the advantage of protected mode trapping I/O accesses. (see also http://www.logix.cz/michal/doc/i386/chp08-03.htm )