Relying on them is not a good idea, but using them is fine. It also fits right in with other "conventions" such as location of local and system binary files.

Relying on the system to determine file type is slow

[me@pc a_lot_of_files]$ time ls -- * &gt;/dev/null
real    0m0.060s
user    0m0.045s
sys     0m0.011s

[me@pc a_lot_of_files]$ time file -- * &gt;/dev/null
real    2m0.629s
user    0m7.613s
sys     0m2.876s

Furthermore they help in giving a rough idea of what to expect. This is useful when searching "some python file which I downloaded yesterday", would limit modified time to just ".py" files.

Don't throw the baby out with the bathwater.