Actually, when we're linking with -Wl,--whole-archive (as we do a lot), I don't think any dead code in named namespaces will be removed.

In the future, we can split up libavian.a into two libraries, one with just the JNI stuff (which requires whole-archive) and one with everything else (which we can link without whole-archive).  In that case, we'd go back to the original situation.

I'll note though that at this point, this is a bit academic - I'm fairly certain all of this code is used.