Screenshots: Bah, lots of projects aren't visual projects.
Versions: Call them Releases and yeah, this isn't a bad idea.
Platforms: Not a bad idea.
Categorization: That's what tabs are for. But really, if you want to, just make some special tags like '@db' or '@db::front-ends' or something like that.
Advanced Project Search: Barring problems with how projects can be classified incorrectly if they have dependent files (say, clients in multiple languages)... also not a bad idea.
But really, please allow us to specify some files to NOT count... it not only lets us better shape how our project is viewed, but also removes some processing strain for files we don't want considered as part of our project like bundled dependencies.