By default, `ls` doesn't even list all files. So no, it does not do its job, let alone 'well'.
It hides hidden files by default. It would be bizarre if it didn't do that.
Ah, hidden files. That's files with "-hidden" in their name, right?
In an alternative universe, Dennis Ritchie would have fixed the bug and yes, the current behaviour would indeed be seen as bizarre; as it actually is on systems which didn't have this bug to turn into a feature.