Hey John,
What is to prevent someone from replacing TurboActivate.dll with their own and provide their own LimeLM apis that always return TA_OK, and thus myApp.exe always appearing properly licensed?
The same thing that's stopping a cracker from attaching a simple debugger to your app and changing a "return X" into "return Y". That is, nothing is stopping a malicious user from cracking your software. No protection is uncrackable whether it's integrated in your app, whether your app is obfuscated or wrapped, or whether it's a separate library. If it exists on a computer it can be cracked.
There are steps you can take to prevent the type of cracking you mentioned. For instance, somewhere in your code you can verify TurboActivate by checking that the Authenticode signature is still valid (TurboActivate is code-signed). Or, if you want a simpler solution, you can do a simple MD5 or CRC check. This will prevent "drop in" replacement of TurboActivate with a malicious version.
What licensing does is prevent a single kind of theft: casual business theft. That is, people and businesses with money to spend on licenses to your software but instead purchase a single serial to your app and use it on hundreds or thousands of computers. In other words, we make it extremely simple for you enforce your licensing contracts.
To prevent the other type of theft (crackers distributing your software on the web), we've developed Pirate Poacher (which is free for users of LimeLM). In a sentence, Pirate Poacher scours the web for pirated versions of your app and removes them so that you're not competing with "free" versions of your own app. Used together, Pirate Poacher and LimeLM will prevent nearly all piracy of your app.
Does this answer your question?