Por que implicitConversions é necessário para defs implícitos, mas não para classes?

Tanto quanto eu entendo, conversões implícitas podem resultar em potencialmente difícil entender o código ou código sofrendo de outros problemas (talvez até bugs?), É por isso que exigem habilitação explícita para ser usado no código sem receber avisos.

No entanto, dado que as conversões implícitas são em grande parte (se não a maior parte do tempo) usadas para envolver um objeto com um objeto de outro tipo, e assim são as classes implícitas - agradeço que você me corrija se eu estiver errado -, por que os primeiros exigem a importação descala.language.implicitConversions mas o último não?

object Main extends App {
  implicit class StringFoo(x: String) {
    def fooWithImplicitClass(): Unit =
      println("foo with implicit class")
  }
  // => silence.

  "asd".fooWithImplicitClass()

  /************************/

  class Foo(x: String) {
    def fooWithImplicitDef(): Unit =
      println("foo with implicit def")
  }
  implicit def string2Foo(x: String) = new Foo(x)
  // => warning: implicit conversion method string2Foo should be enabled

  "asd".fooWithImplicitDef()
}

questionAnswers(2)

yourAnswerToTheQuestion