It's operator precedence. Just look at http://docs.php.net/manual/en/language.operators.precedence.php
It should be:
if (($field = myFunction($node, 'field')) && $field['value']) {
//do something with $field
}
to work as you expected. In this case PhpStorm doesn't warn
Such cases show that it's better always use parentheses if you are not 100% sure about operation order. Imagine what could happen if PhpStorm doesn't warn you in this case and in your tests it was working as expected.