Well hope this explains it:
----------
It is a hack in the sense that you have to take care of some low level details yourself. Just to get some tiny optimizations people sacrifice readability, maintainability and safety.
It is is a hack in the sense that you declare your struct to extend array but it will not be a subtype of array as one might think. ("array" is not even a type in vJass)
It is a tool people use to implement hacks like ARGB. Wurst has tuple types for those cases which are much nicer in my opinion, see for example Colors.wurst).
If you see "struct extends array" in someone’s code you don't know if he did it just for the tiny optimizations, or if he really has an allocation mechanism with some different behaviour, or if he wanted to have a type alias for integers, or if the struct is just used as a namespace, or ....
----------
This is why struct extends array sucks. In wurst you won't need to use struct extends array, because the compiler handels the allocation right.
And all the other things which are possible due to struct extends array are also possible in wurst, but they was realized via some build in features like tuple types, enums, generics,.....
This leads to MUCH MORE readability and the features are very easy to use.