Types may be handy, but you need to define them first, while a bank can be created and removed dynamicly, so the structure of an interface can be defined dynamicly as well. When you know how to use banks then they may give you max flexibility.
Bysides, I have several functions that are taking a lot of arguments, because they are complex functions, eg:
Function CreateSunbeams(texpath$,transp=40,numsurfx#=5,numsurfy#=5,zoom#=1.0,height#=-1.0,lenght#=3.0,vertical_on=1,horizontal_on=1)
Each one is required. Banks and Types are rather useful when there are multiple return values.