Unix philosophy in game dev

I'd like to share this observation that's been bothering me.
Libre games are great because they fix one great issue of mainstream games, which is of course being proprietary. Libre games bring free SW and free culture philosophy to games. Sadly, they mostly fail to bring closely related philosophies, such as the Unix philosophy, with them.
We have to keep in mind that being proprietary corrupts in many ways -- it leads to bloat, obscurity, maximalist monolithic unmodifiable SW, a culture and a mindset of reinventing wheels being the norm, consumerism (create SW, let it die, throw it away and create another one), and so on and so forth. A great example of this is the Windows mess, the ugliest, most non elegant OS ever created. In the free SW world we don't aim to replicate this, we don't want to just add a free license, we aim to do it right thanks to being able to collaborate and share thanks to the license.
So, free SW doesn't mean just a license, it means a complete mindset of creating things in a reusable, friendly, minimalist and extendable way. The Unix philosophy tries to capture this.
My whole point is that a lot of libre game devs try to replicate the proprietary AAA games and along with them they replicate all the wrongs of the proprietary world. Too often we try to create whole monolithic games, from the ground up, with their own dedicated engines, tools, assets etc. The finished game is a little bit of an OS in itself -- it has its own GUI system, user profile system, network protocols, built in internet browser, scripting subsystem maybe even with a custom made language etc. This is wrong.
What we -- or at least a subgroup of us that is unfortunately practically non existent -- should be doing is create our games in a way in which we create our Unix tools. There is no reason to treat games differently.
For example, instead of creating a game, your whole project can be just creating a very good backend for a racing game, without any graphics or sound or IO, with minimum dependencies. Just a program that can handle racing entities. It can work as a library or just a text stream filter run from command line. With just this thing to focus on you can make it extremely good. Once this is finished, someone -- and it can be you again, but as a part of another project -- can create a rendering front end for it. There can be a 3D frontend, 2D fontend, ASCII frontend. A great frontend that can also be backend agnostic and leave a possibility of someone creating another backend. This front end is configurable and can take different asset packages to change how the cars look etc. Now you have these two programs that are independent and work together, but still only take CLI parameters etc., so someone else can create a general GUI menu system to interact with the user to conveniently start your backend and frontend programs. This way you'll create a racing game in which parts can be switched (possibly without even recompiling, just by redirecting pipes in Bash), and this extreme moddability and modularity will allow the game to be played on slow PCs, in command line, 8bit mode, as well as on fast PCs with great 3D graphics, light weight as well as heavy weight, and it will give rise to hundreds of different racing games, just as there are hundreds of Linux distros.
The same should apply to engines. Creating an engine as a framework that includes graphics, physics, audio, IO and its own IDE is very wrong. These should be completely independent parts -- libraries -- usable from any language and development environment.
We kind of see this idea working with e.g. roguelikes or games like GNU chess, and editors such as Tiled, but not nearly to its fullest potential, and with not nearly enough games. I'd like to see a big project built like this.
Am I just naive, or is there something right about my thoughts?
Libre games are great because they fix one great issue of mainstream games, which is of course being proprietary. Libre games bring free SW and free culture philosophy to games. Sadly, they mostly fail to bring closely related philosophies, such as the Unix philosophy, with them.
We have to keep in mind that being proprietary corrupts in many ways -- it leads to bloat, obscurity, maximalist monolithic unmodifiable SW, a culture and a mindset of reinventing wheels being the norm, consumerism (create SW, let it die, throw it away and create another one), and so on and so forth. A great example of this is the Windows mess, the ugliest, most non elegant OS ever created. In the free SW world we don't aim to replicate this, we don't want to just add a free license, we aim to do it right thanks to being able to collaborate and share thanks to the license.
So, free SW doesn't mean just a license, it means a complete mindset of creating things in a reusable, friendly, minimalist and extendable way. The Unix philosophy tries to capture this.
My whole point is that a lot of libre game devs try to replicate the proprietary AAA games and along with them they replicate all the wrongs of the proprietary world. Too often we try to create whole monolithic games, from the ground up, with their own dedicated engines, tools, assets etc. The finished game is a little bit of an OS in itself -- it has its own GUI system, user profile system, network protocols, built in internet browser, scripting subsystem maybe even with a custom made language etc. This is wrong.
What we -- or at least a subgroup of us that is unfortunately practically non existent -- should be doing is create our games in a way in which we create our Unix tools. There is no reason to treat games differently.
For example, instead of creating a game, your whole project can be just creating a very good backend for a racing game, without any graphics or sound or IO, with minimum dependencies. Just a program that can handle racing entities. It can work as a library or just a text stream filter run from command line. With just this thing to focus on you can make it extremely good. Once this is finished, someone -- and it can be you again, but as a part of another project -- can create a rendering front end for it. There can be a 3D frontend, 2D fontend, ASCII frontend. A great frontend that can also be backend agnostic and leave a possibility of someone creating another backend. This front end is configurable and can take different asset packages to change how the cars look etc. Now you have these two programs that are independent and work together, but still only take CLI parameters etc., so someone else can create a general GUI menu system to interact with the user to conveniently start your backend and frontend programs. This way you'll create a racing game in which parts can be switched (possibly without even recompiling, just by redirecting pipes in Bash), and this extreme moddability and modularity will allow the game to be played on slow PCs, in command line, 8bit mode, as well as on fast PCs with great 3D graphics, light weight as well as heavy weight, and it will give rise to hundreds of different racing games, just as there are hundreds of Linux distros.
The same should apply to engines. Creating an engine as a framework that includes graphics, physics, audio, IO and its own IDE is very wrong. These should be completely independent parts -- libraries -- usable from any language and development environment.
We kind of see this idea working with e.g. roguelikes or games like GNU chess, and editors such as Tiled, but not nearly to its fullest potential, and with not nearly enough games. I'd like to see a big project built like this.
Am I just naive, or is there something right about my thoughts?