Then we build verification code into software so that when a program needed X file, it would only load it if it had the right extension.
Then things got a lot more complicated. We started building verification code into the first bytes of the data and added icon to tell humans what it was.
So someone decided that 'hey, we don't need this older, more primitive system of file extensions, lets' deprecate it by defaulting to hide it."
But the problem is the extension system is STILL useful and always has been useful. People like it because it lets them type into a search what kind of file to look for.
On top of that, icons are not in any way related to the system that the computer uses - the first few bytes of a data file. More importantly, we have found OTHER, BETTER uses for icons than to signify what kind of data it is - specifically the concept of displaying a short bit of the data - a micro photo of the photo, or a micro photo of a still shot from a movie.
As such, that leaves us NO simple way for a human to tell what kind of file the photo is.
File extensions have multiple real purposes. The attempt to deprecate and eliminate it was a stupid idea and needs to end. We need to tell the difference between a jpeg and a tiff, an mpg and wav.
The file extension in the main way a human can easily do that. We need file extensions and anyone that doesn't think that is a fool