If you SET FMTONLY ON (or it is generated, which SSRS does) before executing a stored proc, if that stored proc contains IF statements, it will execute ALL BRANCHES of the IF statements in your stored proc, ignoring the conditions.
For example, consider this code:
DECLARE @i INT
SET @i = 0
IF @i = 0
SET @i = @i + 1
ELSE
SET @i = @i + 2
will result in @i = 3 with SET FMTONLY ON and @i = 1 with SET FMTONLY OFF.
With SET FMTONLY ON, the condition "@i = 1" is ignored and both SET statements (IF and ELSE) are executed.