I agree with your points. What I'm trying to say is because it's automated, peoples get lazy and they tend to don't understand how it's working under the hood. and that can lead to really dangerous situation when they start playing with unsafe code.
I'm generalizing here but this is what I observed anyway.
I think this is happens when people just using ready to use libraries, and when they needs to implement something they looking for existing library that can do it and just call it instead of implementing required functions. But if you're writing your own libraries to communicate with devices and OS, it always needs to learn how it works under the hood.
There is side effect of such lazy coding. Most of ready to use libraries come with limitations, for example it cannot run on some platform or incompatible with old OS, or require some payment, or sending unwanted telemetry, etc. So, if you use such approach, your code will be bloated with unexpected functions and will not be portable, so your app will be able to run on some specific OS with specific libraries only.