In the general considerations about Lego part dimensions I stated that the guideline was: all parts have to interoperate.
As experience accumulates, the engineers found it was possible to save plastic or improve grip by making slight modifications, while still observing interoperability. These modifications are usually hidden from sight, most people may never notice them.
Outwardly parts remain the same, but internally their shapes evolve
The 2x4 brick
Look at the underside of an old 2×4 brick and a new one:
The old one already has hollows in its knobs. It also has “under-tubes” so that knobs are held at any grid positions. A knob touches only two sides and a tube, or two tubes and one side: three points. As mentioned in the second page, this explains why it is not held as tightly as in a bearing hole which grips the knob around its entire perimeter.
The newer brick has a thinner wall, but to hold the knobs it has small ridges at the points where they touch. To hold the walls together so they are not pushed out too much by the knobs, thus ensuring more reliable grip, there are supports on either side of the middle tube.
Does thinning the walls gain enough plastic to build those struts? The walls went from being 1.5mm thick to now being only 1.2mm thick. The old and new walls are the same height, the top is not thinner.
The struts are 0.8mm thick and do not go all the way from top to bottom; they are (15.8−2×1.2)−6.41=6.99mm in length taken together (the distance between the thinner walls minus the diameter of an under-tube) they are 0.8mm thick and 6.2mm high. The ridges are 0.6mm by 0.3mm.
The dimples in the knobs are 2.6mm in diameter and 1.5mm deep.
The two tables give the volumes in mm3 of these elements:
wall in old
wall in new
For ease of calculating with a spreadsheet the volumes of hollows (e.g. tubes) are shown with the outer and inner volumes separately.
Doing the right additions and subtractions leaves us with a total volume of plastic of 2’259.28mm3 for the old shape and 2’090.97mm3 for the new one, giving a gain of 7.45%. Not inconsiderable!
More classic Bricks
The first 1×2 transparent brick does not even have a middle stud, therefore it can slide when put on a single knob. The second one has a stud, positioning it accurately relative to other bricks (though of course at the same time limiting its movements). The third one has struts holding the long sides in place, and the final one has a small hole in the stud, saving more plastic.
Compare four 1×4 bricks:
A very similar evolution, with the last one having thinner walls at the short sides, showing the ridges necessary to grip the knobs. The number of struts, how thick they are and how deep they are varies as well.
Under double bearings the stud is not so easy to make, it is replaced by little protusions from the side, but they too are not always the same: placing the left hand one on top of a 1×2 plate that has only a single knob in the middle will not work too well, a problem that has been taken care of with the right hand one:
Very similar changes can be seen in plates:
For larger plates the evolution is less visible. The left one is older, the right one newer. The main difference is in the shape of the inside of the under-tubes. They acquire four little bumps to hold knobs less tightly. This is barely noticeable in the photos:
Highly exaggerated the forms look like these:
On close inspection the orientation of the bumps is not always lined up with the brick in the same way.
In the photo there is an old 40-tooth gear, an old 24-tooth gear (top), a new 24-tooth gear (bottom) and a more recent 12-tooth beveled gear, as well as a transparent bar.
The bar will fit into the newer axle holes, because their corners are more rounded. It will not fit into the old gears. There is also a significant difference between the shape of the axle hole of the 12-tooth gear and those of the others.
The old 24-tooth gear can grip an axle in five positions (two of which may not be intentional).
Even in tiny parts such as friction pins (pegs, connectors) less plastic is used in the newer ones without compromising their function: