The Hom functor Hom(-,-) is contravariant in the first argument and covariant in the second.
Can this fact somehow offer another explanation why Scala's Function1[-T1, +R] has the same property?
I have seen this claim made for example here, but at the point where the connection between the two concepts was supposed to be explained, there was so much hand waving it blew me away.
Probably not if you're careful about the setup. Function1 is very analogous to (the object part of) the Hom functor -- except that its target is not quite the same category. The target of the Function1 mapping is (a subcategory of) the
scalacategory that has Scala types as objects and functions as arrows; while the target of the Hom functor is (a subcategory of) SET. Their images are probably isomorphic, but it's not clear that combining the two functors and the isomorphism preserves the structure in the way you need for variance to be preserved across the whole chain.