I am really sick of people referring to pool hopping as "cheating" or "hurting the pool" or "stealing other miners' money". It's not.
The only purposes I can think of for mining in a pool is to reduce your personal variance, and/or features the pool offers to help monitor your workers (allowing you to reduce your variance further). The larger the pool is (higher hash rate) the lower your variance should be.
A higher hashrate for any portion of a block reduces your variance further and keeps your expected payout per minute of mining exactly the same. In trying to refute this, please run some numbers on length of round, hashrate for different portions of it, and number of shares submitted. If they hop out after some amount of time, that round is still statistically more likely to be over sooner, because more hashes were introduced earlier. As Eleuthria said a few posts up, this is not to say that people who are skillfully pool hopping aren't making more than they would just sitting in one pool (because they should be, or they're doing it wrong). It is just to say that in doing so they are helping you to reduce your variance as well. You can be jealous of their coding skill if you like, but call it that rather than an "attack" or "ripping you off".
Also, hopping with smaller pools is just as effective as hopping with larger ones, it just increases your variance in exactly the same way as mining in said pool full time would.
If this is about programming skill, then you wont mind that the pools delay their information one hour. Without the info about when a new round starts in each pool, lets see how those programming skills help you.