For a database that is shipped with a remotely deployed product, are there any drawbacks to encrypting all code objects (procs, functions, views) via the WITH ENCRYPTION clause in MS SQL Server 2005 and 2008?
The advantages are a deterrent to "custom" changes in the field that solve one need while creating many more. The goal is not to protect IP or data, but to help prevent unauthorized code changes when the rights to alter objects cannot be managed (the security is out of the developers hands, but the responsibility to fix issues caused by others is).
What new problems could be caused by taking this approach?