LWJGL provides JNI methods to (currently) C-only APIs, such as OpenGL, OpenAL, OpenCL, Vulkan, etc. NOT C++ APIs.
LWJGL tries to mirror the C functions via static Java methods as close as possible. For example, the function names are the same, the parameter order is the same and primitive integer and floating point arguments are the same. What naturally is different to C is address/pointer handling. Where you write char* in C you use a String, ByteBuffer or other NIO buffers in LWJGL, depending on the pointer type and level of indirection.
You should totally read this GitHub Wiki entry:
https://github.com/LWJGL/lwjgl3-wiki/wiki/1.4.-Bindings-FAQAnd also this blog entry for memory management in LWJGL 3:
https://blog.lwjgl.org/memory-management-in-lwjgl-3/LWJGL 3 is very stable. I've never had any problems that could not have been solved in a few hours by @Spasi (the project owner). He is devoted to his project and will react on very short notice to any bugs. However, do note that LWJGL provides JNI _bindings_ to other third-party libraries, such as GLFW. If you find any bugs in them, the time to actually land a fix might vary.
But concerning the OpenGL API, you can pretty much be certain that LWJGL 3 is rock solid in that area.