Right now, the project must live within a subdirectory of the repository. This is fine for centralized VCSs, where this is probably what you want, but for DVCSs, it would be more likely that there would be one repository for each project, so putting the project in a subdirectory would be cumbersome.
There is a variable called versioncontrol_project_validate_by_short_name, which controls just that, and I have added a form element to modify it in my branch, but as it is, the setting is site-wide. It would make sense to enable directory-name validation on either a per-project or per-repository-type basis. If a site contains a mix of centralized and decentralized repositories, then it would be useful to force the centralized projects to obey the short name convention, while the decentralized ones could (or would even be forced to) have their projects in the root of the repository.
The general solution might be to set up a system of rules for the directory, where the user could run a regular expression on the project repository path to validate the name.