It's all subjective, and the design of the high level concepts (maybe mechanics?) influence the complexity at every level below it. The idea of a 'file' goes from the GUI down to the hard disc format.
In a superficial assessment, yes, usage is the objective of software, and it should be as complex as needed to enable its users to have an optimal perfomance.
But then, most software is built in an environemnt where people don't even know* what problem they want to solve beforehand. Ading complexity too early makes it very hard to change your software and leads to a situation where you completely optimized some work that shouldn't be done at all, while the important work got harder because it was overlooked at first.
* They have a general idea, and even that is wrong sometimes.
Sometimes but not necessarily unless you're making a programming language or a platform. For typical, more direct cases it's not necessarily the case at all.
"Simplicity of usage should always win over simplicity of coding. The purpose of a product is to solve the end user's pain, no one should give a dime about the engineer's problem. IMHO that was the genius of Steve Jobs, he could take any pre-exiting product and increase its complexity by 50x while simplifying its usage by 10x."
I am relatively new to coding, and really, I want to know what do you guys think about this? Does this really scale? Does simplifying the front end often compromise the backend?