Встретилась в коде недавно такая ситуация (имена и значения изменены):
$a = 1;
$b = $a;
$c += $b;
$b = 2;
...
$a больше нигде не используется. Из чего следует, что код лучше переделать так:
$b = 1;
$c += $b;
$b = 2;
...
Итак, тред о чём. С отловом переменных, которые объявляются и не используются, IDE справлялись прекрасно десятки лет назад. А ловят ли современные IDE подобные ситуации? Конкретный язык в данном контексте не важен.