That's what they're supposed to learn from that, IMO.
that's because they are doing software "for other humans" - aka, their manager and PM, who gave them the requirements.
So the problem is not the software engineer, but the person who creates those requirements to be fulfilled.
Don’t get me wrong - it has it’s place, and if everyone always tried to understand everything, there are a lot of organizations and situations it would be crushing - but it’s also very frustrating in many situations for those who want high quality products.
It’s the ‘not my job’ syndrome, essentially.
You can learn from the fact that its a social service by actively NOT resisting the truth of this fact.
Incorporate it into your thinking with every commit you make and you will become a better programmer over time.
(Corollary: those developers who forget this fact, make shitty software...)
For example, lets say you write an API that translates text. Should you assume the text the human sent in is correct and return an error? That way you can make better translations when they send the right data. Or should you try to be helpful and automatically fix spelling errors you think you've found in order to make the API more human friendly? Would make it easier but reduce accuracy.
You seem to be in the second camp, reduce power of API and make them easier to use. But lots of people think that the best way to serve humans is to make more powerful and strict API's.