If you use SimpleAudioEngine then never use ids, always use strings. In the old days you had to use the id for some things but now in any of those circumstances you should get a CDSoundSource object and use that. For example if you want to fade out a sound with SimpleAudioEngine then you use a CDSoundSource.
stopEffect doesn't unload the sound from memory. You could have 32 instances of the sound playing, just because you stop one doesn't mean the sound data should be unloaded. If you are using SimpleAudioEngine and want to stop a sound you should use a CDSoundSource object and call its stop method.
If you are using SimpleAudioEngine then you don't unload an effect by its id, like I said use strings. There is a string version of unloadEffect in the SimpleAudioEngine API.
Maybe you aren't clear that there are 4 APIs for CocosDenshion - SimpleAudioEngine, CDAudioManager, CDSoundEngine and CDCA which is in beta.