That might be true of todays machines as well, but the number of folks capable of full understanding is a lot less than it once was.
As a kid, I used to program games on the Atari machines and the Color Computer. Back then, BASIC was slow, compiled BASIC was expensive and somewhat limited, and assembly language was fast, but difficult. My games then were good, but were a mix of BASIC and assembly language. Never did reach that solid user experience possible when the machine is running bare metal at full tilt....
Enter Batari Basic. This is a compiled basic for the Atari 2600 of all things. Very cool. It runs at machine language speed and nicely exposes the bare metal with inline assembly, for those wanting to do more. Of course I jumped on this and wasted a bunch of time, but oh well. My soul is happy again for a while.
The environment models the assembly language environment closely, while keeping need to know details to a minimum. 128 bytes of ram, a few sprites and a playfield bitmap are avaliable right now. --Enough for interesting games. New features and capabilities are in progress as you read this. While that does not seem like much, and it isnt much at all, it is enough to capture the very essence of classic gaming at it's finest. The language runs at real time speeds, allowing the programmer to handle game logic frame by frame in step with the TV monitor.
I've a fairly nice game in progress, about half way through the development process. You can read about it, play it on an emulator, and join the discussion here. While you are at it, maybe make a game of your own.
Cool stuff I just had to share!