Nella funzione salvoLibro() tu fai un

return "Libro salvato" .$this->leggoTitolo();

return non stampa niente, restituisce solo un valore, per stamparlo a video devi farne l'echo, per questo se usi echo funziona.

E' giusto che per come hai scritto il codice venga prima stampato il titolo e l'autore del libro e poi il messaggio del salvataggio avvenuto, funziona così:

echo $nlibro -> salvoLibro();

viene eseguita la funzione salvoLibro(), la quale chiama leggoTitolo()
leggoTitolo() stampa il titolo e l'autore del libro perché c'è l'echo, poi termina la sua esecuzione e si torna a salvoLibro()
ora salvoLibro() ritorna la stringa "Libro salvato" .$this->leggoTitolo() che viene stampata dall'echo messo nella chiamata
echo $nlibro -> salvoLibro();