Persistent variable (`variable_set()`) name restrictions
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.