Persistent variable (`variable_set()`) name restrictions Are there any restrictions, conventions, etc. for the names of persistent variables created with variable_set()?

Aside from project name prefix, I haven't found anything in the documentation. However, I notice that most modules restrict themselves to the same rules that apply to PHP variables.
Until Drupal 7, the main storage for the variables is the variable table in the same database Drupal uses. 

The name column is a varchar(128) so that requires the variable names to have equal or fewer characters than 128. 

Prefixing the variable names is purely by convention. Drupal Form API can handle spaces in machine names too, but you will almost never see a form array item key with spaces in it.

There are workarounds, but it's easier if there are no spaces, for example when you use drush, export settings, etc.