@Haelwenn /элвэн/ :triskell: & is an operator and as such, delimits words, just like >, <, >>, <<, &&, ||, etc
# is not an operator and instead is handled during word delimitation itself, as a low priority step so appending # to the current word (if there's any at all) has a higher priority than discarding # comments
aka operator behavior is consistent but the comment # isn't an operator :3