I answered anything because I know nothing about the execution plan but I wanted to see the answer and read the discussion now, so I tried something... and got no luck: my answer was wrong and I still don't understand... So, here I am, with my question: is it important to undersand if you are (well, trying to be) a developper on a very small database?
It is very important if you are trying to design a query optimiser, but not many people do that. It is somewhat important if you are trying to write queries that are efficient - because you need to have some idea of how they execute, and if you can't read and understand a query plan and see how it works that can be difficult. If you are working on an OLTP system that runs on a vastly oversized platform, so that query efficiency isn't of any interest, it's not the least bit important.
So maybe the case for most people is that it is somewhat important. (For me it used to be extremely important, but in those days I was building a data engine.)
Actually it's not something that's difficult. If you have any knowledge of lazy functional languages (like Hope+ or Haskell or LML) you will understand about demand driven execution, and that's pretty much what is going on here.
Alternatively, think of it as a very simple programme paradigm: the thing that produces the result calls the things that provide it with data, and those things all call other things that give them the data they need to produce their results, and so on. Apart from the top level, nothing produces any data or does anything at all unless it is asked to by something at the level above.