I disagree... inlining will remove all evidence that a function call existed. loop unrolling will remove all evidence that a loop existed (potentially).
Those are basic optimisations, comiplers will transform the code out of all recognisability for a decompiler to be worthwhile.