If I understand correctly, the main point of protecting a single player flash game is to keep it sitelocked. How to do this right and are there any other reasons to do this?
Don't. People will steal your game, no matter what you do. Trying to sitelock a flash game smells of DRM to me (OK, it's not quite DRM, but it's pretty close), and you can read all about why DRM isn't going to work. That's not to say you shouldn't use any protection system at all, just not something that you have to visit their site a particular way and do the hokey pokey to play the game.
Sitelocking keeps honest sites honest, and is useful when, for example, you've got an exclusive period on a site but plan to distribute the game afterward. It's not going to stop someone dedicated enough, and I agree that it's better to put in MochiAds or something to take advantage of the distribution.
One case in which sitelocking is vital is when you are selling non-exclusive licenses after you've done a primary license. In that case, sitelocking ensures that the nonexclusively-branded version doesn't spread, since the sublicensing sponsor is paying less and you've already promised the primary sponsor all of the viral traffic. Yes, the sublicensor can circumvent it, but if you don't trust them, you shouldn't do business with them in the first place.
you can see this topic it may help
Buy an encoding software, so reverse engineering softwares won't work. They cost like 40-50 bucks and since game development is a long and tedious process, it really worth investing.