How are pools protected from a client "pretending" to mine? I understand that the GetWork JSON API is used to get a block that needs to be hashed.

I also understand there are many pool payout methods (PPS, etc).

With regard to mining clients and the pool server, what protections are there to prevent software from pretending to mine  (calling the pool equivalent of GetWork()) and getting a larger share than is otherwise required?
Pools don't measure mining rate by how many times a client calls GetWork. They measure mining rate by how many shares are submitted. A share is just like a normal block solution, except that it is million times easier to find. If you don't mine, you don't find shares. 

Related.