I would confirm that the new array syntax is the way to go. Not only can they be declared as local, and are automatically disposed of when the function exits.
I used to think that surely fixed dimension arrays would be more efficient or faster. But after doing many tests the old style arrays do not seem any faster than the new.
So unless you have a lot of existing code that uses dim, that doesn't need rewriting for some other reason, I can't think of a good reason to not use the new dynamic arrays.
Note, while the version 2 arrays "completely clean themselves up" when declared locally, this only works for arrays of basic types like number and strings.
As far as I can tell, version 2 arrays are not smart enough to dispose of User Defined Types, if the array elements come from outside of the function.