I would suggest instead to replace the original "demos" menu with one called "media" --
Where it essentially displayed multiple different types of media in sub-categories/tabs. There's only a few problems with this idea though...
#1: Screenshots really aren't possible for a menu right now. When the menu loads an image into memory, it can never unload the image.. so you essentially would fill your vram with tons and tons of images if you start browsing an image folder. Also: The images take a while to load into the memory of the menu, and this normally wouldn't be a problem except for the fact that it makes the entire menu freeze whilst doing this (as it doesn't have an extra thread to load it)
#2: Browsing maps from a repository is..... very very difficult at best. Instead I would actually go with nowego4's idea to do a "recently played" system for dlcache maps, and also to simply display ALL maps added into your data directory.. This could solve the problem of "I want to copy maps from my dlcache into my data directory" too.. but not sure if this is a good idea from a technical stand point or not.
BTW, using the xonotic autobuild-bsp system is not acceptable for such a repository. Those maps may be broken (and often are), so they need to be manually inspected to make sure they're okay.
#3: Demos which are separated in such a way... I really don't know how to do this, but maybe some kind of flag could be set by the game code explaining what type of demo it is. (Probably not, though)
All in all, we're rather stuck when it comes to this.... X_X