For the most part, Google doesn't really care how you structure your URLs (as long as they're reasonably stable & crawlable; with the exception of country-targeting). Think about what you'd want out of your URL structure instead:
- need to do country-targeting? Use subdomains or high-level folders, e.g., uk.domain.com/... , domain.com/uk/... (this is the main place where Google's guidelines come into play)
- need to track or control access by type of content? Folders are useful for that, e.g., /users/... , /blog/... , /private/... , /shop/shoes/... (site:-queries give you some insight & many tools allow separating out directories, they're also easy to find in log files)
- need to remove content by user quickly? Put their user-id in the path too, e.g., /users/user1234/content123 (the removal tools let you do directory removals)
- need temporary identifiers, like referral-Ids? Put them in the query-string so they can be easily recognized & stripped, e.g., /bluesuedeshoes.htm?ref=123 (using the standard
key=value
format makes it easy for most tools to recognize).
At any rate, I would not blindly follow some big site's structure, in the hope that they must have planned everything in detail. All sites are different, and you'd be surprised at how often big sites manage to get things wrong :).
Using "detail" identifiers (user-name, channel-name, product-name, etc) at the root level makes recognizing (for serving, tracking, blocking, etc) specific types of content impossible, and can result in clashes between different types of content. For example, is /chicken the user "chicken", the channel "chicken", or the product category & what if multiple of these exist? No need to make running a site harder than it already is.