The main thing that has changed over the years is that the software stack has grown deeper, and today there are many more people working at higher abstraction levels where a lot is handled for them.
But under the covers, little has changed. Someone must write and understand code all the way down to the hardware. You can bet that people writing kernels and drivers think a lot about space and speed. Or write some code for one of the low cost micro-controllers that are in virtually all electronic devices and you won't have the luxury of a large software stack.
There are very likely *more* people writing low level code today than 20 years ago. Only the percentage of programmers writing low level code is declining because there are many orders of magnitude more programmers writing higher level code.
- BSD ensures freedom of the *producer* of the code to do what they want.
- GPL ensures freedom of the *recipient* of the code to do what they want.
You are implying that licensing under the GPL somehow limits your options as the producer (aka copyright holder), which is not correct. If you are the copyright holder, you are free to re-license at any time. You may not be able to revoke a license that you granted others on an irrevocable basis, but you can certainly apply any number of separate licenses.
For a project that has multiple copyright holders the overall situation is more complex, but you still have the freedom to do what you want with the parts that you created.
With your bare hands?!?