Quote from trend2009:
suppose the software binary is encrypted, how can the second application load it into memory and decrypt it to make it run without writing any temporary decrypted files on the disk first?
In reality a computer does not really see a difference between a file in memory and on disk. Nothing prevents you from loading your application directly in memory from the encrypted file. It is harder to program but nothing all that hard using modern development tools like Microsoft .Net