Clarify my thinking behind `InstanceAlloc` and `ArrayAlloc` split.
Added discussion of zero-sized type handling.