You set the username field to not display on registration. This means the Username Fallback parameter within CB > Configuration > User Profile will take affect, which you've set to Email. This means Username at time of registration will be set to Email. CB uses Username for profile URL SEF alias. Either allow Username at time of registration, change the Username Fallback, or allow them to use the Profile URL (alias) field so they can supply their own (e.g. set to display on registration/edit and mark as required). Note this behavior was not recently implemented.