As the person being replied to, I'll respond. This is an excellent post. Major upvote. I agree with everything the OP is saying.
My first point about "flow" is, I think, connected to this idea. Stupid wastes time. It breaks flow and replaces meaningful, objective feedback with noise. I also agree strongly that our happiness is correlated strongly with spending as much of our time on programming (I.e. real work) and as little time on stupid shit as possible.
It's pretty easy to say what kinds of problems are not interesting: those where instead of solving a few big, clear, problems, you have to solve a lot of nasty little ones. One of the worst kinds of projects is writing an interface to a piece of software that's full of bugs. Another is when you have to customize something for an individual client's complex and ill-defined needs. To hackers these kinds of projects are the death of a thousand cuts.
My first point about "flow" is, I think, connected to this idea. Stupid wastes time. It breaks flow and replaces meaningful, objective feedback with noise. I also agree strongly that our happiness is correlated strongly with spending as much of our time on programming (I.e. real work) and as little time on stupid shit as possible.