Was sind denn jetzt die Nachteile? Ist jede Instanz völlig unabhängig von den anderen?
Bei jedem Zugriff auf die Eigenschaften des Prototypen zahlst du drauf. (Ist aber genau wie beim Zuweisen im Konstruktor m.M.n. vernachlässigbar).
... weil bei jedem Aufruf die Methode erst in der Prototyp-Kette nachgeschlagen werden muss, das kostet Zeit.
Du kannst nicht auf gekapselte Eigenschaften zugreifen (jedenfalls nicht über Funktionsgrenzen hinweg, innerhalb einer Funktion kann man natürlich wieder kapseln).
In dem Zusammenhang sei auf das Module-Pattern hingewiesen.