I definitely agree about the "filtering crap from gold" bit. Once you reach a certain level of skill it can become a hindrance: you develop an extremely low tolerance for anything that doesn't catch you as interesting within a few seconds, and you start speed-reading absolutely everything. This is good in that you aren't wasting time consuming something that's not really useful, but it's bad in that you end up contin…
I was doing a fair bit of pair programming and I found that talking to my pair about whatever issue we were facing was helping me clarify the design in my head. When I started working on a few solo projects, I found that taking notes worked almost as well, despite lacking the other side of the conversation.
One of the biggest benefits was that I find it cathartic, where once I've written down all of the arguments for a particular design decision, I am able to move on without revisiting it in my head constantly.