Of course I'm not saying things shouldn't be bad engineered, don't misuse my words, and again, I still doesn't see how an abstraction layer can be so harmful. KDE uses one the same way and there's no one pointing fingers at them.