I believe this could all be done with aspirin's DisplayUtil.applyToHierarchy. Something like

```actionscript
        return DisplayUtil.applyToHierarchy(dObj, function (disp :DisplayObject) :Boolean {
            for each (var filter :Object in disp.filters) {
                // all standard filters except ColorMatrixFilter can change the visual bounds
                if (!(filter is ColorMatrixFilter)) {
                    return true;
                }
            }
            return false;
        });
```