Browsers interpret the different codes properly. Spambots don't. They
could, but that would require them to interpret
all javascripts, which would be to expensive for them and just not realistic. How much javascript is out there on the Internet? And how much of it would actually contain email addresses? It is like trying to find a camoflauged golf ball somewhere in the Sahara desert.
The first one will actually let a spambot get the wrong address
And thus waste their time instead of yours - hehehe
The second one is just there in case you can't use javascript.
The fourth one is by far the strongest.