The fastest way is often to just run the "Strings" program on the software. Often it will dump out a bunch of strings that match those in the Open Source project: Error Messages, Logging messages, etc. Sometimes if they're really sloppy it'll spit out the name of the GPL program/library directly and a version number.
I often add magic arrays to my code. So.. if I find them in a binary blob...
Have there been any lawsuits involving breach of open source licences?
Suspecting users can try the software to see if it has the exact same functionality or bugs as the copied GPL library. This is of course not a definite proof, but some amount of rare enough coincidences can be considered as a very strong sign for copying. Legal measures can be taken on account of these evidences.
And of course there is always the option of a whistleblower.
Usually 'strings' on the binary shows up tell-tale signs.
Granted that means the 'smart' infringers are likely to slip through the sieve, but at that point they'll have to essentially be re-writing the code anyway, and lose most of the benefit that they'd get stealing the GPL code (they'd have to hand-roll any bug or security fixes back into their stolen-but-obscured GPL code)
Pretty much any (non-entry level) engineer at a decent software company knows what licenses to avoid. There are strict policies against the use of viral licenses along with training and automation to detect it, etc.
Also I don't think it's that easy to conceal and not sure any serious company would risk the liability.