I think what you are missing is that people do use abstraction if you offer it. Java or C# generics or even when C++ added templates. C++ templates where abused but it was done so often that is now standard.
If you look at code from the newer fancy languages people do use these fancy features.
If you look at code from the newer fancy languages people do use these fancy features.