Diferencia entre la inferencia de tipo del método y los parámetros de tipo de clase en la coincidencia de patrones

¿Por qué la coincidencia de patrones funciona de manera diferente cuando el parámetro tipo proviene de un método de cierre en lugar de una clase de cierre? Por ejemplo, trait Base[T] case class Derived(v: Int) extends Base[Int] class Test[A] { def method(arg: Base[A]) = { arg match { case...