Der Beitrag When not to use a JavaScript framework zeigt gut auf, warum es manchmal auch lohnt, kein Framework zu benutzen bzw. dass durch die Verbesserungen von Javascript und den Browsern in den vergangenen Jahren die Notwendigkeit von Frameworks nicht mehr in allen Situationen besteht.
Mir selbst ist es bei der Arbeit (und vor allem beim Debuggen) mit jQuery aufgefallen, dass in dem Projekt sehr selten die Funktionalität zur Mengenbearbeitung von Elementen genutzt wurde. In der Regel wurde über die Selektoren exakt ein Element gewählt, so dass die Funktionalität der Mengenbearbeitung in jQuery einfach nur Ballast war, der sich deutlich im Stack-Trace zeigte.
Auch das Beispiel mit dem HTTP-Request aus dem Beitrag kann ich bestätigen. jQuery hat eine eigene Implementation von Promises, aufgrund der historischen Entwicklung, die sich aber nicht vollständig mit der im ECMAScript-2015-Standard deckt, und in der ajax-Funktion steckt noch so viel Funktionalität, die man oft nicht benötigt. Daher habe ich auch in dem Projekt meine eigene, kleine Funktion, mit dem spezialisierten Aufruf mit puren Javascript-Mitteln gebaut.
Den letzten Punkt, den ich selbst gespürt habe, ist die Bindung an das Framework – und das betrifft nicht nur den Wechsel zu einem fremden Framework, sondern bereits den Wechsel zu einer neueren großen Version. Wenn man nicht ständig am Ball bleibt, hat man zum Teil mit den Anpassungen mächtig zu kämpfen. Mit einem Framework verkauft man immer auch ein Stück seiner Seele und wird abhängiger.
Alles in allem gibt es aber auch viele und bekannte Gründe, die für den Einsatz eines Frameworks sprechen – auch dies wird im oben genannten Betrag gut erläutert – und ich würde mich im Zweifel auch eher für als gegen eine fertige Bibliothek entscheiden.