Lots of G-code stuff comes from the old paper tape days, and then really underpowered CNC controllers. Modality saves memory, lots of CNCs work fine without line numbers too. I used to program a Bandit controller. 4 digital numeric displays, X,Y,Z and G-code or M-Code number and some red lights indicating G, M, F etc. Really user friendly.
The other space and programmer saving things were canned cycles, like G80,G81,G82, which were drilling cycles that did depth,peck, chip break and such. Then there were G70-G79 range cycles for things like circular pockets, rectangular pockets, mirroring, rotation about an axis and such. When writing code by hand these things kept you from going completely mad as the code that would replace them would be thousands of lines. The G40, G41, G42 codes do tool radius offsetting. That was nice because you could program a 2" square pocket and cut it to size by calling up a tool number and radius, and the toolpath would move over to compensate. Subroutine calls were useful too. No standardization on that at all! One machine I worked on, a Fadal actually used MBasic for macros!