Observe the test file before this patch:
I think this patch really improves on this case. The problem however, that some subexpressions of expressions should be tracked (like n in arr[n] here) is a broader one, and there may be other some cases I could add.
Mmm, dunno about null fp suppression. We're, like, talking about integers. Integers are more often zero than null. We generally do support some FP suppressions for integers as well (i.e., core.DivideZero uses them), but in this case it doesn't sound as if 0 is anyhow special.