Do you find yourself dealing with heterogeneous arrays often? It might be useful to post some examples where this comes up to the list.
Julia compiles specialized versions of functions for the concrete types they are called with at run time, so you should usually think of the types in function signatures as documentation/assumption checks rather than a performance optimization. This is in contrast to explicit types used in type declarations or inside function bodies, which can have important performance effects.