You can probably detect it statistically from the distribution of block times for the pool. If there is pool hopping then there should be a longer tail. In the extreme case (which obviously doesn't happen) once a block takes too long everyone hops out and the block never finishes (infinite block time). I don't know for sure there is enough data to make a strong statistical inference on this, but I would guess there is.
I would bet every BTC I own that there is pool hopping happening on at a fairly large scale, and people have automated it. And I agree that the way things are structured now the pools don't have a huge incentive to do anything about it. The best thing to do is avoid pools without good defenses.