To make your code reusable as subvi's and have less connector space used the cluster is a way to go, but you need to define the types inside your cluster upfront.
If you want to add an other item inside this cluster you have to rewrite all the subvi's this cluster is wired to...... This is at least annoying. (or dull, boring, dreadful, tedious, dreary, tiresome, aggravating, exasperating, irritating)
If you could add new types of variables inside this "Dynamic Cluster Array" on the fly, you can expand the clusters on the fly when needed !
Example of a "Dynamic Cluster Array":

Look also to the Search 1D node, to see how you can select an array cluster item.
You can read and write the cluster as normal clusters but if you want to read or write a variable that does not exist this variable is added.
Reading and writing this variable will add this variable in all clusters in the array, these variables will get the default value until your software changes this value.
This behavior is the same as structures in Matlab
John