OK now I understand what's going on.
What was causing confusion was the showing of the tree in Task Tree view.
Things are much simpler in List view
Postion is a numbering system that starts with the integer 1 and increments. If there is a child relationship a "." is inserted.
For example "5.6.3" is the 5th task's 6th child's 3rd child.
OK, suppose we have a structure like this, and are filtering on "Position is less than 3", then only the tasks I have highlighted in bold green are visible in List View
1
2
3
4
5
5.1
5.2
5.3
5.4
5.5
5.6
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
6
6.1
6.2
6.3
6.4
6.5
7
8
9
i.e. All the filter is doing is taking the last number (the bit to the right of the last "." if there is one) and only showing those tasks that match the filter condition.
To get clear in Task Tree view the tasks listed below (5 , 5.6, 6) are also visible but they are only there in order to show the "tree" for the benefit of the task on the next line.
1
2
3
4
5 (tree)
5.1
5.2
5.3
5.4
5.5
5.6 (tree)
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
6 (tree)
6.1
6.2
6.3
6.4
6.5
7
8
9
...And the task that remain black disappear from view.
It is in fact quite irritating that task "4, 7, 8 & 9 " have all now disappeared from both views, as would 5 and 6 if they had no children.
Back to first (GTD) principles, if we argue that only tasks that have a child can be considered to be "a project", surely we want those "stand alone" tasks (i.e. tasks with no children and no parents) to be included in this view.
i.e. In programmatic terms, any position without a "." in it should also be shown.
However although this simple tweak to the algorithm would allow standalone tasks to be viewed at the same time as "Next [n] Actions in each Project", I still have the problem that when I am working in a given Category (i.e. Area of Life) I want all new tasks to default to get that Category.
I can't emphasize enough how important these subtleties of user interface are. Having to manually enter things like Category for each task is very close to being a deal breaker for me.
I mean in a paper based system, one would just find the right bit of paper and write the task on it, and stuff like Area of Life and even Context-tag are both implied.
When working fast with lots of tasks coming in an out of the system, these subtleties are absolutely crucial to the usability of the entire system.
So we need to find some way to get certain fields particularly Context and Tag to default in accordance with the user's current mode.
I suggest that rather than inherit attributes from a task's parent, that we should be given the opportunity to inherit the properties of the lot immediately above them in the current view.
To be honest, as things stand TDL is not really usable for me.
J