Опытным путем было установлено, что сжимать в php нужно с уровнем 9 и во Flash пропустить первые три байта полученного bytearray (позже выяснилось, что это не нужно, это просто три байта UTF-8 BOM затесались).

Код:
<?php
$str = gzcompress('it is a good day to die', 9);
echo $str;
?>

Код:
var loader:URLLoader = new URLLoader();
var request:URLRequest = new URLRequest('http://php/zlib/?test='+Math.random());
loader.dataFormat = URLLoaderDataFormat.BINARY;
loader.load(request);
var completeHandler:Function = function(event:Event):void {
var ba:ByteArray = event.target.data;
var ab:ByteArray = new ByteArray();
ab.writeMultiByte('it is a good day to die','x-ansi');
ab.compress();
trace(ab,ab.length, ab[3].toString(16));
trace(ba,ba.length, ba[3].toString(16));
ba.uncompress();
trace(ba);
}
loader.addEventListener(Event.COMPLETE, completeHandler);
Не уверен, что сие есть правильное решение, но переваривает строки довольно длинные без особых проблем.