If you don't absolutely know how much stack you're going to need, /heap-arrays is a win. This is especially true with 64-bit applications where the stack is limited to 1GB just as it is on 32-bits.
Yes, if you set the stack reserve size high enough for your program to run, you won't lose any performance.
As for doing both - you can, but with /heap-arrays enabled, the use of the stack will be much lower.
You may want to read
Doctor Fortran - Don't Blow Your Stack!