Why is this an issue?

Jump statements (return) move control flow out of the current code block. So any statements that come after a jump are dead code.

Noncompliant code example

def foo(a: Int) {
  val i = 10;
  return a + i;       // Noncompliant
  bar;                // dead code
}

Compliant solution

def foo(a: Int): Int {
  val i = 10;
  return a + i;
}

Resources