When the specification and the agreed behavior of the application operates without fault, however the outcome turns out to be undesired, what should this be called? Is it a bug?
How can it be a bug when the software performs as desired from the specifications and the agreed behavior?
I do consider this a bug. In my experience 90% of all bugs* are about not understanding what is wanted: ie. design bugs.
In this case the design itself was buggy leading to a bad specification. The fault here lies not in the person who implemented the program but in the person/team who designed the system in the first place.
In a Scrum setting, I usually consider fixing design bugs as completely new stories since it really results in a new specification (and along with it new tests and new definition of done). I don’t consider it a “bugfix” task.
*note: In most modern languages. In C, 90% of all bugs are about bad memory management