“Doesn’t native prevent multiple thread access anyway, so standard map should be fine?” if you only access that map from one thread, yes. Depending on what you’re doing and how you’ve architected your app, that may be easy or very difficult.
“JVM map is backed by ConcurrentHashMap for example”. True. The native version is not, however, and that presents a couple problems. First, your native and JVM versions of shared code would need to behave differently and have different threading assumptions, and second, if/when you do wind up trying to use shared code from multiple threads, it’ll bomb at runtime.