Module names are, I believe, a superset of identifiers, where '.' is allowed between the parts that correspond to the identifier fragment.
I will add details. That header file names are not identifiers is an interesting compatibility issue.
As currently proposed, I am restricting syntax elements to the basic source character set. That might make sense for headers (not header files), but expressing that constraint might be complicated. I doubt anyone will insist on a header with characters outside the basic set soon.