ModX references everything by its ID number e.g., index.php?id=50. Even when using aliases it seems to be restricted to 1 layer. See their [url=http://modxcms.com/documentation.html]documentation section[/url]. I just had a play on the demo and I couldn't even get to my test page because it didn't show up in the menus.
Drupal appears to use the same /module/function/parameter/ format as other CMSs e.g., /node/20/. Looks quite powerful/customisable/complication.
I totally agree with what you are saying.
Running a large site with 100s of pages, I really don't like the idea of not having sub-levels.
I run the website for a radio station,
and instead of having /show1 /show2 etc. which could easily get confusing, I want to be able to have /shows/1 /shows/2. This also means that if someone just wants shows, they can go to shows and get a list 1,2 etc.
Or /programming/music would make more sense than just /music because /music makes it seem like it's OUR music, not music we play as part of our programming.
I will be glad when this is merged in to the core - it's the biggest thing that SilverStripe is missing... I would say it's what has stopped me from moving all my sites to it, and I don't think I will have been the only person that has been put off the system because of it.
Although Rails has been leaning towards using the colon character to denote parameters, the official w3c specification for URLs is to use the / character to separate URL segments, and then use GET variables to denote page view options.
Also, using that approach would be confusing, as it departs from traditional file system approaches (the / and \ characters).
All other characters can be used in file names, and there comes the issue of distinguishing files from URLs. Also, I think google is actually based on the / character.
Adding extra characters to denote hierachy (e.g. page-sub-page) is a good temporary fix suggested by Sam, but its not appropriate IMO for a complete solution.