I do this for 2 main reasons:
If I have too many items on my TODO list and I get tired or lazy (which happens too often), then I will gravitate to those items which are easiest or the most gratifying at that moment without regard to importance. The problem is that I don't realize that I'm working on a lower priority until it's too late and my time has been lost.
The other reason is that I believe I really don't know what the second most important thing to do is until after I've done the first most important thing. I have discovered that I learn a lot through both the process and the result of doing the first item. That learning often reveals what to do next. (Ex: Now that I understand what the process must be, I have to redo the database schema.)
OP's description of his system was very interesting. It made me wonder if I'm missing something.
Alex, would it invade your privacy too much to see an example of your TODO list? (An example's worth a thousand words.)