MovieLogic class does indeed unload the dll's in its contructor via the call to SoundManager::unloadSoundModules(); Though, maybe you have an extremely old version? And recent version (last few months) should include that call.
What OS/Compiler?
There are a few events:
//Signal that movie reached end of ogg stream, still playing though
TH_OggStreamDone = 0,
//No more vorbis packets for decoding.. buffered audio still present
TH_VorbisStreamDone,
//No more theora packets found in the stream.
TH_TheoraStreamDone,
//The movie is no longer playing
TH_EndOfMovie
TH_EndOfMovie should only be called one time. The others could be sent multiple times.