When I tried to access bookmarks/categories, an exception has been thrown (unable to find an action called categories in BookmarksController). I haven’t found a word about such problems in docs.
Having subdirectories in the controllers directory may be ambiguous, because when accessing "user/profile/update" it is hard to say, is "user" a module or a directory under controller path.
Also I think controllerMap is not what you need. So the only possible option I see is to create a module "bookmarks".
Previously I was creating modules for each site section. But in the last project I put all controllers (20 or more) into the one directory, and I don’t have any problems with it, since all controllers have unique names (same as models names but with “Controller” in the end).
If you want a url "bookmarks/categories" for controller CategoryController, just add a url rule in the application config:
If the concern is about separating code into smaller chunks, you could write actions by extending CAction instead of writing actionXyz methods within the controller. These could be easily structured in subdirectories.