Why is this an issue?

The repetition of a prefix operator (!, or ~) is usually a typo. The second operator invalidates the first one:

$a = false;
$b = ~~$a; // Noncompliant: equivalent to "$a"

While calling ! twice is equivalent to calling the boolval() function, the latter increases the code readability, so it should be preferred.

$a = 0;
$b = !!$a; // Noncompliant: equivalent to "boolval($a)"