I wouldn't worry about the extra code: if it's never called I think the compiler will strip it out...
Actually the gcc linker isn't very smart about this. It does dead-code stripping on a per file basis. If there's nothing in a .o file that's used the whole file will be dead-stripped. If some is used and some isn't then none will be dead stripped. Also, the dynamic nature of Objective-C can make it difficult to dead-strip very well.
I do wrap debugging code in #if DEBUG so it's commented out in the final builds and in some cases I will also wrap code that I know isn't used in #if NOT_USED.
In the end though the success or failure of a product isn't going to be determined by its code size.