http://reactivex.io/RxJava/2.x/javadoc/io/reactivex/Observable.html#zip-java.lang.Iterable-io.reactivex.functions.Function-
The zipper signature is Function<? super T[]>, ? extends R> zipper, where use of T[] breaks it. Just invoke it with non Object T, and a ClassCastException is thrown.
I checked with Single and Flowable, they have different signatures for the comparable zip operators. They use Object[] where T[] is used for Observable, which are also consistent with the 1.x zip operator.
I think this is just a bug in the signature.