I believe this is the CM-M way of falling into forcing rubber bands blog.
I think I almost never fall into the trap of saying "is this greedy" "is this dp" "is it dijkstra" etc. Yet, I still tunnel vision and end up not solving easy problems compared to my practice. Why?
I believe the trap I and many others fall into is that they believe at some point in contest that a problem will be satisfying to solve.
Particularly to me, once I get to some problem level I don't always solve, I first naively believe there will be some reduction or insight that is interesting to me where I believe not anyone can come up with it (probably for some ego reasons). While I then get the main insights, I will end up overcomplicating putting things together or miss a final simplification step as it seems before the last step the problem would still seem cool to me. However, when I don't get it, shortly after contest reality will strike and I realize the reduction is so simple that anyone from primary school would eventually get it if they thought about the problem very long (this doesn't necessarily mean it's easy, but rather that it's hard to miss given enough time and focus and requires minimal background).
Practice is when to try to solve satisfying problems that will increase your thinking capability, contest is often only enough time to get what is easy in hindsight. The exception is through luck/skill you are able to properly always think stupid until it no longer works, but you never are sure when it won't work and chances are you just aren't thinking stupid enough.
If you too are always seeing a problem is unsatisfying in hindsight from contest, tell yourself more consciously when you are taking longer than 30 minutes or the ideas are seeming longer than 30 lines of code to think stupider. Because 90% of time that problem you're stuck on is not one your stuck because it will be satisfying, but because you believed it will be.