Por que usar typeof para identificar uma função?

Existem razões significativas para usar

typeof variable === 'function'

versus

!!variable.call

para detectar se uma variável é uma função?

Diferente do óbvio que alguém pode criar um objeto como:

{ call: 1 }

O problema que tenho é que

typeof /regex/ === 'function'

retorna verdadeiro, mas

!!/regex/.call

retorna falso

questionAnswers(6)

yourAnswerToTheQuestion