> res1 doesn't look like it's been zipped to me...
You are completely right. I don't know exactly why that happens, but it
seems to me that it could be a type inference problem:
scala> import scalaz.syntax.applicative._
import scalaz.syntax.applicative._
scala> ToApplicativeOps(Zip(Stream(1,2,3))).F.pure(1).force
res11: scala.collection.immutable.Stream[Int] = Stream(1)
scala> ToApplicativeOpsUnapply(Zip(Stream(1,2,3))).F.pure(1).force
// doesn't even compile
Apparently the conversion to the trait which provides the syntax is
"lossy", i.e. tags get lost. I don't know what can be done about it.
(The only thing which comes to my mind is to provide "fat" wrappers,
i.e. `case class ZipStream[A](...)`.)