Let me explain the situation first.
We have an IIF condition that looks like this:
IIF (IN( PRCSS_TYP,'X#') AND IN( YR_TYP,'X4','X5','X6'), 'YES', 'NO')
Now here it is a known fact that if YR_TYP is any of X4, X5 or X6, PRCSS_TYP will always be X#. Hence, the first part of the condition {IN( PRCSS_TYP, 'X#')} becomes unnecessary.
Obviously, in any programming language this type of programming practise is not encouraged. But here my question is specific to Informatica. To how much extent this affects the performance of this code snippet in informatica? Is it negligible? Or it is huge? Also is there any way to measure how much performance degradation this can make?
There will not be a noticeable performance issue if you consider only this redundancy. For large data volume, it might impact slightly.
This is because the number of operations increases linearly with the volume of data being processed. There are serious performance issues, when running time/number of operations increases as a quadratic/cubic or exponential function of the input data volume.
Also, there are usually more source and target bottlenecks in a typical Informatica process for you to notice any lag in the expression transformation. Informatica uses separate threads for reading, writing and transformation. If your transformation thread is sitting idle most of the time, redundant code in transformations will not have any impact on the total running time. You can check the session log, how much time the transformation thread is busy. If any transformation is taking longer time, Informatica will include the running time (%) of that transformation separately in the session log.
However, as @Maciejg suggested, you should always try to avoid redundant code, as multiple such glitches can build up and impact the performance significantly.