I've had issues before either in the rendering or the reflection vector. I suggest using a sphere to debug.
In my current shader, I have to flip the x-axis of the reflection vector: texCube(envMap, vec3(refVec.x*-1, refVec.y, refVec.z) ). Pretty sure that is just an issue with my current code as I dont recall doing that before. But I've had issues where I had to convert the vector from GL to DX coordinates because the cube map is stored in directX coordinates most likely. So try flipping y and z, and/or negating one of those after flipping.
aside from that, you could also be potentially rendering to the wrong cube face on accident or using the wrong view matrix to render to the face.
vec4 R_World = inverseView * vec4(R, 0.0);
You could also using an interpolate/varying of the world eye/camera and get rid of the matrix multiply in the pixel shader.
Yea, i'm already flipping the x-axis because of the way that opengl reads textures. The weird thing is that it works fairly well until you get in a higher position than the reflective object. As for the matrix multiplication, that FragPos one of the outputs of a geometry pass and it is used for other things that are expecting it to be in viewspace (like SSAO) so i think that is going to have to stay, at least for now.
Well i have to say that the sphere debug was an excellent sugestion, there's definitely something wrong in here, even when the camera is not looking from above:
Looks like the top and bottom textures are switched. Will continue to debug based on your suggestions, thanks.
EDIT:
Yup, just switched the order of the cameras and sure enough:
Now the problem is that my cube map looks switched in the OpenGL Profiler, so the error was not really in the cubemap generation but in the reading, will investigate. Thanks again