Boa tarde Carlos, tudo certo?
Você trouxe uma ótima indagação! Realmente, parece que esse comportamento deveria ser o mesmo independente da forma que a função é criada, mas isso não acontece.
Isso acontece, pois as arrow functions não criam um this
associado ao objeto que você está chamando. Sendo assim, precisamos utilizar a escrita das adições ao prototype como funções anônimas para ter o comportamento que queremos.
Esse comportamento é mencionado em uma atividade de um curso anterior e realmente pode causar uma certa confusão. Tem um tópico em inglês com uma discussão extendida caso tenha interesse.
Espero ter ajudado e bons estudos!