You don’t even need to look at the extension to identify most file formats, as there are unique magic numbers stored at the beginning of most (binary) formats. Only when a single binary format is reused to appear as two different formats to the user, e.g. zip and cbz are extensions relevant. This is how the file
command and most (?) Linux file explorers identify files, and why file extensions are traditionally largely irrelevant on Linux/Unix.
This means your idea of suggesting software based on the file type is even more practicable than you described.