Hello Mike,
DECODE push downs the operation but not nested if then else. If we add an audit point prior to an operation that is usually pushed down to the database server, performance might degrade because pushdown operations cannot occur after an audit point. I'm not pretty much sure of the functionality you are trying to implement. Try Data Transfer Transform for push down if it might help.
Thanks,
Yusuf.