There are valid cases for passing a variable multiple times into the same function or procedure call, but usually doing so is a mistake, and
something else was intended for one of the arguments.
Noncompliant Code Example
SET @result = dbo.MyAdd(@val1, @val1) -- Noncompliant
SET @result = dbo.MyAdd(@val1, @val2)
This rule is deprecated, and will eventually be removed.