RFC wise # is a eprfectly legal channel name. The only RFC requirements are that the name begin with a # (or & but forget that for now) and that the rest of the name mus NOT contain a space, coma, null, bell, new line or carriage return character.
Specifically defined as:
<channel> ::= ('#' | '&') <chstring>
<chstring> ::= <any 8bit code except SPACE, BELL, NUL, CR, LF and
comma (',')>
I'll admit it doesnt say <chstring> is optional, but nowhere that I recall in the RFC says its required.