+1  A: 

Hierarchical urls of this kind "http://www.example.com/product:123/456.html" are as useless as "http://www.example.com/product/123/subpage", because when users see your urls, they don't care about identifiers from your database, they want meaningful paths. This is why StackOverflow puts question titles into urls: "http://stackoverflow.com/questions/4017365/human-readable-urls-preferably-hierarchical-too".

Google advices against practice of replacing usual queries like "http://www.example.com/?product=123&page=456", because when every site develops it's own scheme, crawler doesn't know what each part means, if it's important or not. Google has invented sophisticated mechanisms to find important arguments and ignore unimportant, which means you'll get more pages into index and there will be less duplicates. But these algorithms often fail when web developers invent their own scheme.

If you care about both users and crawlers you should use urls like this instead:

Also, search engines give higher rating to pages with keywords in the url.

Athari
Yes, I agree with you on the uselessness of IDs in URLs. But regarding the URL of this question (to follow your example): is `http://stackoverflow.com/questions/4017365/human-readable-urls-preferably-hierarchical-too` penalised compared to the (fictional) alternative `http://stackoverflow.com/questions/4017365-human-readable-urls-preferably-hierarchical-too` (one level higher)? (The second part of my question.)
jensgram
@jensgram I seriously doubt search engines "penalise" any URLs for additional levels. Even if there's difference, you're unlikely to notice it. Adding a keyword into URL matters hundred times more than the number of slash characters around it. :) It's just a character. Now that "human-readable" URLs (with unreadable IDs) are becoming popular, this character can mean virtually anything.
Athari