This blog-post describes changes in N related to the behavior the app developer is observing:
Bottom line here libandroid_runtime.so is not part of public API and is not supposed to be used by apps.
I suspect that this is something that could be easily fixed by switching to public API (The app developer probably meant to call to JNI GetJavaVM instead of using private symbol from libandroid_runtime.so).
Answering your questions:
1. anonymous namespace is expected to be empty for most apps.
2. libandroid_runtime.so should not be used by apps. Adding it to /system/etc/public.libraries.txt will lead to CTS failure in N.