In OpenGL your viewpoint is always at [0,0,0]. Say you have a vertex at this point as a part of a cube or some other object. Is that vertex in front of or behind the camera/viewpoint? After projection I always end up with w=1 when z==0, which also (as expected) happens to vertices with z==-1. So practically vertices with z=0 and z=-1 ends up at equal distance after projection.
Look how vec(2,2,0) and vec(2,2,-1) ends up with same screen coordinates here: https://jsfiddle.net/sf4dspng/1/
Result:
vec1: x=2.0000, y=2.0000, z= 0.0000, w=1
proj1: x=0.9474, y=2.0000, z=-0.2002, w=1
norm1: x=0.9474, y=2.0000, z=-0.2002, w=1
view1: x=1.0000, y=0.0000, z= 0.3999, w=1
vec2: x=2.0000, y=2.0000, z=-1.0000, w=1
proj2: x=0.9474, y=2.0000, z= 0.8018, w=1
norm2: x=0.9474, y=2.0000, z= 0.8018, w=1
view2: x=1.0000, y=0.0000, z= 0.9009, w=1
Why is that?