Earlier quoted context omitted.
Grouping/sorting also enhances human readability, and the options for this in GNU ls are quite limited.
Use sort(1), you can sort by fields. Also, you have --group-directories-first in GNU ls. Maybe everyone should read the man page before commenting.
At a minimum, the "file type" codes are limited to inode types and one permission bit (exec). Output layout is limited to the `ls -l` format unless you parse & re-emit that in which case I would argue you are replacing `ls` just with `ls -l` instead of readdir/stat as a driver.
`lc` lets you define several kinds of new categories (besides classics like dot files and directories, for example ALL_CAPS or even file(1)/magic-based coding) and sort (or filter) by those in a multi-level sense in the unfolded (non-l) layout, not just the "-1" layout. As mentioned these categories are useful not only for colorization. This results in dense, but co-located big blocks of similar file types in the table. For example, I could group ELF executables differently than "simply perm-bit/access(3)" scripts. This is often helpful since the ELFs may not run across systems or can be rebuilt from sources. Similarly, I can group "dot directories" before "dot files" before "directories" before "non-directories-non-dots".
Besides file type limitations, there are also many other features in `lc` that would require increasingly sophisticated (and not generally available) shell tools and combinations. Just off the top of my head, the auto-glob abbreviation feature, other value-dependent formatting like file data sparseness, "3 char wide times" like "37w" for 37 weeks old, tweak files, etc. I doubt, were you to provide all these things that you would be able to persuade anyone that you were not "replacing ls" with something a notch or two more sophisticated. Could this replacement all be done with like find/stat/file/awk? Maybe, but I'd bet that would be pretty slow, especially on larger directories.
As to the value of said replacement, well, you may not care about any of these features and that is fine. I know smart people that mostly `ls -l|grep foo` - hardly using the features of the listing (or subdirectories!) at all. Yet none of my mentioned features involve color and it is simply incorrect to suggest just reading the man page reveals "trivial" ways to replicate them all. Combined with color, I think they are even more useful, but people vary on color. Anyway, cheers & good luck to you.