1) Here's a .capx showing that it does in fact work without needing a resize action: https://dl.dropboxusercontent.com/u/15217362/arrayworks.capx
I think you might have been confused by the fact the array object defaults to 10x1x1, and since indices are zero-based, the element at 8,1,1 is outside the array. It works fine with 10x10x10 though, as the .capx proves.
2) Only if you use CocoonJS or the Intel XDK, and it's a documented limitation (e.g. see how to export to CocoonJS). If you use PhoneGap or a mobile browser it all works, but then you have other trade-offs (performance, distribution etc.)
3) Instance variables are static - you can only use the ones you added in the editor. The Dictionary object keys are dynamic, and can be changed at runtime, making it useful when you don't know in advance how many variables you'll need.
4) Well, that's to do with CocoonJS, and not Construct 2. Let them know about any issues you come across and hopefully they'll be able to fix them.