Yeah, that would be nice. For instance in my SQ2, if you are in the underground caverns, there is the water background sound. If you blow the whistle it stops the water and plays the whistle... and the water sound doesn't come back. It would be nice to figure out how to make that happen.
Well, that's AGI, so that's a different beast.
In SCI, playing a second midi sound won't cause another to stop (though maybe it does with some drivers? I dunno. Maybe if you're using the PC-speaker).
My thought for SCI speech was to have a class that extends from Sound, say AtmosphericSound. The assumption would be that this is a looping digital sound. Then the Messager or Talker class would find instances of these (well, there should be just one), and fade them to zero over a short time, before starting the speech audio. Then after the speech is finished, it would restart them and fade them back up.
Interestingly, a bug in ScummVM (I claim): In Sierra's interpreter, DoAudio(audSTOP) will stop all digital sounds, even if they were started by DoSound. In ScummVM, DoAudio(audSTOP) only stops sounds that were started by DoAudio (which arguably makes more sense, but is still different than Sierra).