No, I have beaten it too (first!), I broke the highscore with exactly 1 point.
About that time block, only if you implement it yourself..
Encryption is beatable, because there has to be a decrypt function, you can just require the bytecode and use that function.
I don't know, but is it possible to create a multi pass decryption? Then no single function has the power to decrypt anything on its own. I have no idea whether that is feasible or possible, though.
Still, the encoding has to have input, if you fake that input.. or use an echo server and check what comes out on the decoded side.. hell, you can use a memory editor if you want to.
EDIT: And of course you can intercept calls to the encode and decode, printing the raw outgoing and incoming data.
So, basically, there is no way to stop someone who is determined and doesn't want to play by the rules, whether it's a cheater, a cracker or a lock-picker, you can delay them and hope they get bored, but you cannot stop them.
The essential problem is that once your code is in the hands of the end user, there's nothing you can do about it.
The only way to guard against cheaters and the like is to sanity check everything that comes into the server - that's how most MMOs do it, for example. They can't control modifications to the client, so they just keep an eye on what the client sends - if someone moves farther than they would be able to in normal gameplay, for instance, the server can restrict their movement and flag them as possible cheaters.
So, all you can really do to protect the sanctity of your high score tables is to have some method of determining real data from fake :\
And of course, even then it's possible to create a few fake accounts, and use some bots to assist you. While not quite as spectacular as some other ways of cheating, it would still give the cheater an unfair edge.
Or decimal encoded BrainFuck? (0 = "+", 1 = "-", 2 = ">", 3 = "<", 4 = "[", 5 = "]", 7 = ",", 8 = "."... or, to make it more confusing, you could mix them up randomly...)