A little hard to describe in one row for subject. But here we go.
public class A
{
private int counter = 0;
private void foo() // FP
{
counter++;
}
public class B
{
public void bar()
{
foo();
}
}
}
In this example rule S3398 in SonarQube will suggest to move foo() into B, because foo() is used from nowhere, but from a method in B. So far, so good.
Now as we see, foo() manipulates a member of A and hence belongs very well to A. I would consider it, well not right, but also not wrong, to move foo() into B. At least I would not want this rule to complain, as it is a matter of taste.
What do you think?