Expand function static analysis to identify side effects caused by array writes.
Never treat a local variable as effectively constant if it is passed to functions that cause side effects on it or allow it to escape.
Add a test case that covers erroneous temporary eliminations caused by array side effects not being identified.