На самом деле это и вправду странная проблема. К примеру если менять звук так:

Код AS3:
_soundTransform = new SoundTransform;
channel.SoundTransform = _soundTransform(volume, ...);
То если делать это не каждый фрейм, при громкости равной нулю воспроизведение останавливается
Если задавать переменную типа SoundTransform на верхнем уровне класса и присваивать в неё переменные объявленные там же:

Код AS3:
_soundTransform = new SoundTransform;
vol:Number = new Number;
channel.SoundTransform = _soundTransform(vol, ...);
То переменную vol он просто не увидет, пока писал веб плеер с визуализатором звука, много таких неясностей нашёл, но внимания не заострял