Hi,
the "knowledge" is from the tutorial and manual.
The design (to have just one program per sub-folder) is a design choice. You may not like it, but you can't deny that it works.
If you need a more complex system - nobody so far had this issue - you're free to modify the wscript and tweak it.
The current system perfectly fits the current goal: scratch is where the user's scripts are and any script can be either:
1) a single .cc (just place it in the scratch)
2) some .cc and .h (use a subfolder)
This, of course, does not help in a multi-user environment, where each user may want to have its own sub-tree in scratch. However, usually the users have different accounts altogether in moderns OS, so this is not an issue.
Anyway, feel free to propose alternatives and submit to ns-dev mailing list with the modified wscript.
Cheers,
T.