> that my time would be better spent working on a personal software project, where i get reasonably similar enjoyment, more satisfaction, and presumably more transferable skills.
Sure. Maybe your time would be better spent working overtime too. Factorio is a game, and focus on the fun parts. Battling NPM dependencies after a full work day is not fun, it's just more work. There are some days when you are just cranking out code and not worrying about much else, but those days are not necessarily the norm.
First playthrough I was anxious to get to the automation parts. This continued as I explored more of the game, more of the automation possibilities, blueprinting, trying to make an all solar, all steam or all nuclear factory etc.
At some point and I don't know when exactly it turned. I like the initial bootstrapping phase and at varying points I just get this "ugh, really? This pre-requisite, then this, then this and then finally I can build what I really want?" and then I shut it down and play Dungeon Keeper 2 or something like that instead.
As for beautiful solution to software development: Personally I am somewhere in the middle. I like beautiful solutions. I advocate for clean and maintainable code. But I have no patience for dogmatic "this the only good way to solve this" BS any longer. There are many ways to solve the same problem. All have their pros and cons. I'm not gonna let my people spend another week refactoring this to some staff engineer's liking, keeping it out of the hands of customers ;)
So, yes, programming is of course more productive, but that's not really the point of leisure time.
Programming also comes with baggage that Factorio can do away with (eg sibling comment mentioned build tools, I've given up on an evening of personal programming before because setting up the build environment was too much effort... looking at you cmake you piece of garbage... Or because I hit a bug that was too much effort to find/fix. Factorio "debugging" is much simpler, its about finding blockages or optimizing things, not figuring out why undefined is not a number in some deeply nested code where the value couldn't possibly be undefined but it turns out some async code changed it without you realizing...)
I'll have cycles where I'll choose lower levels. For example, most recently I purchased a classic hp rpn programmable calculator and have had fun working through the manual, doing exercises, solving problems with it, and of course, learning to program it.