Actually restrincting filename is in conflict with rope shortening:
A good way to avoid rm * to remove your home directory is to do
file=$(echo -e "$HOME/\01"); touch $file; chmod 000 $file
However forbidding control characters in filenames would break that.
(Restricting filename breaks a number of programs, for example flwm and other windows managers that use filenames as menu titles.)