I have been trying to figure these out. I am at least certain that they contain the geometry data in some way.
The files seem to have some kind of binary format, but from what I can see they have small repeating patterns, which could be 3D coordinates.
The problem is that the files seem to be linked to each other in some way. For example, by far the smallest .g file is the one of the stormtrooper helmet,
which of course has by no means the smallest polycount of all brick models. So I think it gets its other geometry data from other .g files.
The directory name, "brickprimitives" seems to confirm this.
The LFXML and XML files that share the names of the .g files define all the properties of the bricks. Mostly their physics simulation properties (bounding boxes, center of mass, etc).
They have a link to a part number (a .g file)
Edit: figured out why parts are split into multiple files; textured objects require a different kind of rendering, so it looks like parts of the brick that have different textures than the rest are separated into their own files. I have verified it with a few bricks, and all bricks that contain textures seem to be split up.