yes, it's called frame of reference, it works nicely if you are rendering a tree of objects(where the child is relative to the parent), but not so well if each object is suppose to already be in world coordinates(thus why you should learn about glPushMatrix/glPopMatrix for this sort of thing.)
note that newer openGL models with shaders no longer support these matrix operations, and it can be easier to work with only world-coordinates, because you have to manually pass the matrix.
as for your ground, it suffers from two problems:
1. if you ever move the ground, your going to have a similar issue you experiance with your cubes.
2. you do not change the x-coordinate, so you are essentially drawing a long line at -2000 x.
one last thing, you should recognize that the cube's/ground are relative to your camera, this means that when you fire your cube, and move, that cube well move with your camera, it'd probably be better to set the cube at the camera's position in world space, and make sure you pop the camera's matrix before drawing the cubes.
on a side note, that is generally how skybox's are handled, so keep that in mind for one day down the road.