That's a solution requiring technically informed users.
It's nice to see someone else who doesn't see showing file extensions as some kind of panacea for computer issues. It really wouldn't help at all.
I propose something different: Icon markings. Executable files should have some kind of visual clue that can not be faked and is added by the OS and only to executable files.
I like this idea, but it seems like an unsolveable problem: How do you decide what is "executable" and what isn't? Sure, there are well-defined executable binaries for each operating system, but there are also a myriad of other ways you can run code. Whether it's a Bash script, VB script, embedded macro of some kind, etc. In Windows, the shell (Explorer) runs ShellExecute on the file to invoke the filetype's registered handler -- how would it know ahead of time what that handler might do? I could display an image or it could load embedded bytecode and run it through an interpreter.
And, on Windows at least, this "glow" already exists to some extent. Files downloaded through most (all?) browsers these days are given the "mark of the Internet", and alternate data stream tag that says "this came from the web". When a user runs a program (or certain other file types), a dialog box is displayed that says "Warning! This is an untrusted program that may break your computer!". Users simply ignore this -- will a glow be much different?
Imagine that from day one, we would have agreed that left click opens a document file, while right-click runs a program. [...] it is highly unlikely that they would try to right-click it.
I think I have to disagree with you on both counts here. First, because even if systems had been designed that way at the beginning, they would have evolved to what we have today. The reason is simplicity: We simply want the computer to "open" whatever it is we're interested. I don't want to be bothered every time, trying to decide if the file I'm looking at falls under "document" or "program". Say, for example, an HTML file. It's a "document", sure, but it also may contain various forms of scripting which falls (or should) under "program". Computers are supposed to take care of easy repeated tasks, surely knowing how to display a given type of file falls under that.
Second, and partially because of the first, I think users would very quickly train themselves to start right-clicking anything that didn't work when they left-clicked it. Download a good program and left-click it by habit -- oops, didn't work, hmm, try right clicking -- it works. Now they download an evil cat picture and left-click it -- oops, that didn't work, hmm, try right-clicking -- it works (and they're now infected).
Humans are very good at making deductive steps towards solving a problem -- "I tried left-click and that didn't work, but I know that right-clicking also does things to files I download, I will try right-clicking. It worked, therefore right-clicking is the answer when left-clicking doesn't work. Stupid computers, why are they so hard to use?" -- and then the whole system is void. If you observe users trying to figure something out, you quickly see they come up with all sorts of odd and unusual ways of going about it, just because "that's what works".
Fundamentally it comes down to understanding the separation of the two kinds of files and why it's important to treat them differently. This requires technically informed users -- the very same flaw as simply displaying file extensions.