The problem is that the second element of your tuple must be of type S, which can be considered as a collection of SeqLike, but not vice versa. Therefore, even bf cannot help in this case.
, , , S List Array, . , S .
import scala.collection.SeqLike
implicit val emptyList = () => List()
implicit val emptyArray[T] = () => Array[T]()
def partiallyReduceString[S <: SeqLike[String, S]](reduction: String, seq: S)(implicit empty: () => S): (String, S) = {
if (seq.nonEmpty)
???
else
(reduction, empty())
}