It's actually called "obfuscation". Also, anyone can replace the loadstring function with a function that will print out the raw code. It's a nice first step but you can take it much further by using obfuscation around the loader code as well, in ways other than bytecode generation.