Windows Explorer checks for that, but that's only one particular app which is written to do so, it's not the underlying file system. Others, for example Microsoft Studio Code which happens to be in front of me right now, let me create source files with forbidden names. This program is not explicitly designed to handle the file system and it doesn't know to check for this. We can't expect all application software to do so. But if the name check was in the underlying file system itself instead of a higher layer of one program (maybe more, I don't know) then it would prevent the problem at large. Reality is, files are created, renamed, imported in various ways, and the system accepts them.