I am using MVC too, and I definitly think it is the way to go.
What sound concerns, I was wondering about that too? In my opinion sound is pretty much related to the view. So, you add remove/change items in the view - you output a sound for it.
Advantage: It's easy to maintain - add one line of code (e.g. "SoundPlayer.play(<SongName>);") to wherever you need it based on display changes. Usually I have 100+ lines of GUI code and 1 line of sound player code - which does not bloat the GUI/view. Also it makes synchronization between sound & view easier.
- I am not sure if there is one? You should program SoundPlayer so it runs in a separate thread to not block your GUI. I.e. SoundPlayer.play(<SongName>) just adds a new song to play to the sound player thread. "play(<...>)" should return immediately.