NDK не предназначен для полной замены уровня Java.Существует множество функциональных возможностей, которые недоступны в C, кроме как через интерфейс JNI.
Если вы беспокоитесь о защите доступа к JNIEnv *, почему бы просто не создать вспомогательную функцию, которую ваши пользователи могут вызыватьчто делает JNI для них?