Это действительно будет зависеть от вашего "кэша" и от того, как он реализован, НО звучит так, как будто он повторно использует объекты Bitmap и разделяет между ними BitmapData. Предполагая, что я могу сказать вам следующее:
Bitmap - это просто оболочка для BitmapData, поэтому если вы примените преобразования к Bitmap, эти преобразования будут по-прежнему применяться, если вы присоедините к нему новый объект BitmapData. Похоже, что «кеш» не сбрасывает объекты Bitmap перед возвратом их вам (как новый объект, но на самом деле это переработанный объект)
ТАК, это не то, что scaleX и scaleY работают по-разному на битмапах, а в том, что «кеш» перерабатывает их, а не сбрасывает. Похоже, вам придется их вручную сбросить, вы можете просто установить scaleX / y на 1 для каждого «нового» растрового изображения, которое вы получаете.
Повторюсь, я делаю предположения о кеше, но это кажется вероятным.