The only code path which seems to call EMISound::setPan is in engines/grim/set.cpp where it is executed right after a corresponding setVolume() call. setVolume() call uses the same code (getting the channel and assert if there is none). Since it seems to work fine for setVolume(), it should work fine for setPan() too.