This fails because array[3] is out of bounds, even though in my opinion it should only evaluate the code that says array[0] and ignore the other block.
I ran across this issue, trying to golf down some code, so it probably wouldn't be an issue for most uses. But what do you guys think?