However, one thing I have been noticing is that a lot of the commercial web sites that use SWFs to deliver some of their content (i.e, user polls, etc.) are leaving lots of trace() statements in their code, apparently on the assumption that since the user is not running the debug version of the SWF, they can't see the debug output. Well, that's no longer a safe assumption, and while I haven't seen any security exposures as yet, it does emphasize the point that you should always strip out your debugging code before deploying any SWFs to production. One site that I'll keep anonymous has so much debug junk in their code that it practically crashes my browser when I try and load their page!
Anyway, just keepin mind that debugging statements can be viewed outside of the debug SWF, and you'll be all set.
Rather than using the standard trace() function, create a custom function (maybe in your standard utils package) that traces, but also checks for a global variable or some other method of disabling the trace (if ! debug then trace()) so that you can remove traces from your entire app by changing one variable (or function). Of course, it requires that you use the custom function so already-written apps may not be worth the effort :)
When I get around to writing it myself I'd be happy to share...