Non lo fa perchè non la usa...
Credo, ma potrei sbagliare, che dato che Pippo NON usa, realmente, Pluto, allora il parser non lo riconosce.
Prova a vedere se, definendo la funzione come
codice:
  function canta() {
new Pluto->abbaia();
}
funziona