I assure you that this is true if the channel has a lot of members and it takes several seconds for them to be listed.

Also, on Freenode I get neither a 352 nor a 315 sent. I get 1 or more 353 followed by a 366 :End of /NAMES list.

But I could certainly set a variable in the ON JOIN event and clear it on the RAW 366 event as a way of knowing either I was InJoin.

But that does not stop this being a potential bug.