Eu não consegui entender muito bem em qual contexto/escopo o método "metodoOriginal" seria executado se nós não tivéssemos usado o "apply(this, args)". Entendi que, ao usar o apply, a gente diz que o contexto do "metodoOriginal" deve ser o mesmo da função que estamos colocando em "descriptor.value".
Ops... Acho que acabei de responder a minha pergunta enquanto escrevia ela, mas... quando a gente não coloca o "apply", o contexto do "metodoOriginal" seria o daquela função que está sendo retornada pela função "logarTempoDeExecucao", né? Esse negócio de "this", "bind" e "apply" ainda me bagunça as idéias.
Tá... mas acho que é isso. Valeu (patinho de borracha)! É isso mesmo, né?