たとえば「 swap を食ってでも完遂されるべき仕事」と「 swap を食うくらいならパフォーマンス落としていいからちまちまやってほしい仕事」を各タスク自身が自治するには、同じ機能を沢山のアプリケーションにコピーする必要があって良くないので、 OS という中央で一括して管理するのが合理的かつ管理しやすいように思われる
本来プロセス間でのリソースの融通は OS のレイヤーで行われるべき事柄であって、そこをアプリケーションが斟酌して云々しようとすると、大変厄介なことになるのではと思います。
あと、本質的に必要でないが重要かつ複雑な機能を組み込んでバグを出したら目もあてられない