What's good for you might not be the best option for the majority of people.
Making things that "just work" means handling complexity for users, and leads to
somewhat complex code. Debian's static network configuration is great for
servers and okay for desktops that never move. But it's nothing that you
should put on laptops operated by enterprise users (the people that pay for
Linux desktop development). Imagine users calling support from a Starbucks,
trying the edit the wifi config files.
Handling complexity by piling more complexity on top is sadly very common, even so common that people think it's inevitable. But it's not the only way. The other way can sometimes be harder, and it tends to take more thought, but in the end you may actually solve and get rid of complexity.
Complexity can be caused by the developers of the software, and in that case it is unwarranted. But my assumption is that NetworkManager developers are reasonably competent, and take good decisions in all the trade-offs they have to make.
In their case, they need to support lots of features, and make all of them work seamlessly: multiple Ethernet, Wifi and VPN interfaces, IPv4/IPv6 configuration, modems, firewall policies, and so on. n^m different states. To get rid of this complexity, you'd need to remove options at the bottom of the stack, e.g. only allow communication via serial port at a fixed rate.
Perfectly sums up my feelings about NetworkManager.