Another critical difference is a tradeoff between cost of learning and the flexibility of the interface. A CLI is hard/expensive to master, but once you do, you can do a great deal of work as the tools are able to interoperate in unforeseen ways. A GUI is the opposite situation: easier to learn, but overall, a shallower toolset that can only be used in ways that are deliberately designed into the interface.
The only way a GUI can even come close to the flexibility of a CLI, would be to require a radical re-think of the whole thing. For instance: allowing the user to attach objects from any piece of software in the system, to any control, in any interface, at any time. That would be a start, as it still doesn't address things like arbitrary logic, data flow, or automation between tools. From there it becomes obvious why Microsoft is toying with the idea of pushing software vendors to invest in CLI tools: as you say, it's easier to engineer.