I tried to look at it like cooking, or baking: I can make damn good croissants. They'll never be quite as good as someone with a dough sheeter and handmade cultured butter, but my friends and family would never complain.
The problem is, baking something and sharing it with others brings people together, there's smalltalk, catching up, other human stuff. Which in the end is kinda the point of it.
Like your post says, with programming, it's mostly just a race to what achieves the goal, with the exception of demoscene and retro programming, I guess. I started learning ARM assembly so I could make a lisp implementation in it. It will be useless, no one will use it, and an AI could bang one out in a few minutes, but overcoming that struggle to understand things in different ways has to be the goal with hobby programmers like myself, I guess.